例如,使用一组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)到AnchorablesSourceDockingManager属性)。这样就很容易显示/隐藏可 anchor 对象,因为您只需要获取/设置绑定(bind)到VisibilityLayoutAnchorableItem属性的ViewModel属性即可。

您可以看一下Avalondock提供的WPF示例。这是their code source中名为AvalonDock.MVVMTestApp的项目。

09-19 06:50