AvalonDock:多个工具窗口布局
本文关键字:窗口 布局 工具 AvalonDock | 更新日期: 2023-09-27 18:03:37
我在我的WPF项目中使用知名的对接库AvalonDock 2.0。库支持MVVM,这就是我要做的。在GitHub上有一个示例MVVM测试应用程序。我下载了示例并对其进行了扩展,以显示我需要的布局,大致如下所示:
---------------------------
| | |
| | T1 |
| |----|
| Docs | |
| | T2 |
| |----|
| | |
| | T3 |
---------------------------
正如你所看到的,我有一个主文档区和一个工具区,有3个LayoutAnchorable
,停靠在右边,垂直堆叠。使用MVVM,我的窗口的ViewModel暴露了一个名为Tools
的属性,该属性返回一个包含我所有工具窗口的ViewModel的数组。然后将此属性绑定到XAML中停靠控件的AnchorablesSource
属性。
问题是,然而,AvalonDock显示3个工具窗格作为3个选项卡,而不是垂直堆叠它们。
这里有人使用AvalonDock与MVVM吗?我的未来是什么?LayoutInitializer
类对解决这个问题有什么作用吗?
后来的研究表明,实际上是LayoutInitializer
类的工作,将ViewModel对象分配给我的LayoutAnchorablePane
s。布局本身仍然应该在XAML中定义(如果你愿意,也可以通过代码隐藏来定义)。这在理论上也是正确的;