从 WinForms 和 WPF 停靠迁移到 Avalonia Docking UI¶
如果您曾在 Windows Forms 或 WPF 中使用停靠管理器构建 IDE 风格的界面,并正在迁移到 Avalonia UI,那么 Eremex Avalonia UI Controls 库的 Docking UI 会让您感到熟悉。该库仅面向 Avalonia UI:不包含用于 Windows Forms 或 WPF 的控件。Dock 管理器组件可在跨平台的 Avalonia UI 应用程序(Windows、Linux、macOS)中创建可停靠、可自动隐藏和可浮动的工具面板,以及选项卡式文档区域。
本主题将您已熟悉的概念映射到该库的构建块,并说明在何处可以找到详细信息。
概念对照¶
| 您需要的功能 | Eremex 库中的构建块 |
|---|---|
| 管理整个停靠布局的组件 | DockManager - 请参阅 Dock 管理器和 Dock 项目 |
| 工具窗口(Solution Explorer、Properties、Output 等) | DockPane - 请参阅停靠面板和容器 |
| 主区域中的文档选项卡(选项卡式 MDI) | DocumentPane - 请参阅文档面板 |
| 一组选项卡 | TabbedGroup(停靠窗格的选项卡容器)和 DocumentGroup(文档窗格的选项卡容器) |
| 并排或堆叠、由拆分器分隔的面板 | DockGroup(拆分容器)- 请参阅拆分面板 |
| 从窗口边缘滑出的面板 | 自动隐藏 - 请参阅自动隐藏面板 |
| 位于独立窗口中的面板 | FloatGroup - 请参阅浮动面板 |
| 显示面板将停靠位置的拖放指示 | 停靠引导 - 请参阅 Dock 管理器和 Dock 项目,以及用于隐藏特定指示的 DockManager.CustomizeDockGuide 事件(1.5 版) |
| 使用 Ctrl+Tab 切换窗口 | 文档切换器 |
| 在会话之间保存和恢复布局 | 保存和恢复面板布局 |
| 在代码中构建布局(排列、拆分、浮动、激活、关闭) | 在代码中执行停靠操作 |
| 由 ViewModel 驱动的布局 | 使用 MVVM 模式填充停靠项 |
值得了解的差异¶
- XAML 优先。 布局在 XAML 中声明(Dock 管理器包含停靠窗格、文档窗格和组),停靠操作也可以在代码中执行。
- MVVM 支持。 可以从 ViewModel 集合创建面板,因此停靠布局无需代码隐藏即可融入 MVVM 应用程序。
- 布局序列化。 可以使用
DockManager.SaveLayout和DockManager.RestoreLayout方法保存和恢复停靠面板和文档的布局。 - 跨平台。 同一 Docking UI 可在 Avalonia UI 支持的所有平台上运行。
最小布局¶
以下示例展示了典型布局的结构:一个文档区域,其下方是 Error List 面板,旁边是一个包含两个工具面板的选项卡容器。有关分步演练,请参阅 Docking 入门指南。
xmlns:mxd="https://schemas.eremexcontrols.net/avalonia/docking"
<mxd:DockManager>
<mxd:DockGroup>
<mxd:DockGroup Orientation="Vertical">
<mxd:DocumentGroup></mxd:DocumentGroup>
<mxd:DockPane Header="Error List"/>
</mxd:DockGroup>
<mxd:TabbedGroup>
<mxd:DockPane Header="Properties"/>
<mxd:DockPane Header="Debug"/>
</mxd:TabbedGroup>
</mxd:DockGroup>
</mxd:DockManager>
后续步骤¶
* 本页面使用机器翻译技术翻译。