DockingManager是否带有处理Anchorables的内置方法

时间:2014-02-11 04:09:23

标签: c# wpf xaml avalondock xceed

使用一组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的典型工作流程是什么?

1 个答案:

答案 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的项目。