使用一组Anchorables设置AvalonDock时,例如:
<a:LayoutRoot>
<a:LayoutPanel Orientation="Horizontal">
<a:LayoutAnchorablePane>
<a:LayoutAnchorable Title="A1">
<!-- content -->
</a:LayoutAnchorable>
<a:LayoutAnchorable Title="A2">
<!-- content -->
</a:LayoutAnchorable>
</a:LayoutAnchorablePane>
<!-- ... -->
DockingManager(或AvalonDock中的其他内容)是否采用内置方式 管理关闭的Anchorables?它们是否存储在某个地方的集合中,以便可以检索并再次显示它们?
例如,用户从上面的代码中关闭第一个(A1),会发生什么? 我怎样才能再次显示它?
处理关闭和恢复anchorables的典型工作流程是什么?
答案 0 :(得分:11)
当您添加xceed
标记时,我假设您使用的是Avalondock 2.0。
例如,用户从上面的代码中关闭第一个(A1), 会发生什么事?
你的锚定变得隐藏起来。如果您选择为可锚定名称(例如:<a:LayoutAnchorable Title="A1" x:Name="myAnchorable">
),则会在视图的代码中看到this.myAnchorable.IsHidden
变为true
。
如何重新显示?
致电.Show()
针对您的可锚定:this.myAnchorable.Show();
话虽这么说,Avalondock 2.0与1.0完全不同,因为它现在允许轻松使用MVVM(特别是绑定)。因此,最佳做法是不在XAML中静态添加LayoutAnchorable
,而是管理一组ViewModel(绑定到AnchorablesSource
的{{1}}属性)。然后很容易显示/隐藏anchorables,因为您只需要获取/设置绑定到DockingManager
Visibility
属性的ViewModel属性。
您可以查看Avalondock提供的WPF示例。这是their code source中名为LayoutAnchorableItem
的项目。