例如,使用一组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中的其他功能)是否具有内置方式
管理已关闭的 anchor ?它们是否存储在某个地方的集合中,以便可以检索并再次显示?
例如,用户关闭了上面代码(A1)中的第一个,这会发生什么?
如何再次显示?
处理和还原 anchor 的典型工作流程是什么?
最佳答案
当您添加xceed
标记时,我假设您正在使用Avalondock 2.0。
您的 anchor 将变为隐藏状态。如果选择命名可 anchor 定的名称(例如<a:LayoutAnchorable Title="A1" x:Name="myAnchorable">
),则会在 View 代码中看到this.myAnchorable.IsHidden
变为true
。
针对您的 anchor 调用.Show()
:this.myAnchorable.Show();
话虽如此,Avalondock 2.0与1.0完全不同,因为它现在允许轻松使用MVVM(尤其是绑定(bind))。因此,最佳实践是不在XAML中静态添加LayoutAnchorable
,而是管理ViewModels的集合(绑定(bind)到AnchorablesSource
的DockingManager
属性)。这样就很容易显示/隐藏可 anchor 对象,因为您只需要获取/设置绑定(bind)到Visibility
的LayoutAnchorableItem
属性的ViewModel属性即可。
您可以看一下Avalondock提供的WPF示例。这是their code source中名为AvalonDock.MVVMTestApp
的项目。