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类对解决这个问题有什么作用吗?

AvalonDock:多个工具窗口布局

后来的研究表明,实际上是LayoutInitializer类的工作,将ViewModel对象分配给我的LayoutAnchorablePane s。布局本身仍然应该在XAML中定义(如果你愿意,也可以通过代码隐藏来定义)。这在理论上也是正确的;