9

当使用一组 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),它会发生什么?
我怎样才能再次显示它?

处理关闭和恢复锚定对象的典型工作流程是什么?

4

1 回答 1

12

当您添加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(尤其是绑定)。因此,最佳实践不是静态添加LayoutAnchorableXAML,而是管理 ViewModel 的集合(通过绑定到 的AnchorablesSource属性DockingManager)。然后很容易显示/隐藏锚点,因为您只需要获取/设置绑定VisibilityLayoutAnchorableItem.

您可以查看 Avalondock 提供的 WPF 示例。AvalonDock.MVVMTestApp这是在他们的代码源中命名的项目。

于 2014-02-13T13:25:36.320 回答