# SplitView 使用文档 本文档介绍 AtomUI SplitView 控件的各种使用方式。 > 📖 注意:当前 Gallery 演示程序中尚未包含 SplitView 的独立 ShowCase。以下示例基于控件源码和主题模板编写。 --- ## 前置准备 在 AXAML 中使用 SplitView,需要引入以下命名空间: ```xml xmlns:atom="https://atomui.net" ``` 在 C# 代码中引入: ```csharp using AtomUI.Desktop.Controls; // SplitView 控件 using Avalonia.Controls; // SplitViewDisplayMode, SplitViewPanePlacement 等枚举 ``` --- ## 1. 基础用法 最简单的 SplitView 用法——左侧面板 + 主内容区域: ```xml ``` --- ## 2. 显示模式 ### Overlay 模式 面板覆盖在主内容之上,不影响主内容布局。适用于窄屏或临时弹出的导航面板: ```xml 切换面板 ``` ### Inline 模式 面板与主内容并排,展开时主内容被压缩: ```xml ``` ### CompactInline 模式 收起时保留紧凑条(通常只显示图标),展开时压缩主内容显示完整导航: ```xml ``` ### CompactOverlay 模式 收起时保留紧凑条,展开时覆盖主内容: ```xml ``` --- ## 3. 面板位置 ### 右侧面板 ```xml ``` ### 顶部面板 ```xml ``` ### 底部面板 ```xml ``` --- ## 4. 展开/收起切换 ### 通过按钮切换 ```xml 切换侧边栏 ``` ```csharp private void TogglePane(object? sender, RoutedEventArgs e) { MySplitView.IsPaneOpen = !MySplitView.IsPaneOpen; } ``` ### 通过 MVVM 数据绑定 ```xml Toggle Sidebar ``` ```csharp public class MainViewModel : ReactiveObject { private bool _isSidebarOpen = true; public bool IsSidebarOpen { get => _isSidebarOpen; set => this.RaiseAndSetIfChanged(ref _isSidebarOpen, value); } } ``` --- ## 5. 轻量关闭遮罩 在 Overlay 模式下启用轻量关闭遮罩,点击遮罩自动关闭面板: ```xml ``` --- ## 6. 自定义动画参数 ### 自定义展开/收起时长 ```xml ``` ### 禁用动画 ```xml ``` --- ## 7. 响应面板关闭事件 ```xml ``` ```csharp private void OnPaneClosing(object? sender, CancelRoutedEventArgs e) { // 可以条件性地阻止面板关闭 if (HasUnsavedChanges) { e.Cancel = true; // 取消关闭 } } private void OnPaneClosed(object? sender, RoutedEventArgs e) { // 面板已关闭后的清理逻辑 } ``` --- ## 常见组合模式 ### 应用主框架布局 ```xml ``` ### 右侧属性面板 ```xml ``` ### 底部信息面板(类似 IDE 输出面板) ```xml ```