我有一个AvalonDock DockingManager控件,带有一些子Anchorables(无文档)。如果这些Anchorables从主DockingManager浮动,则我知道它们仍然是DockingManager逻辑树的一部分。

但是,我从用户那里提出了一些要求,即通过“禁用”某些功能,浮动窗口与主窗口之间将更加独立:


当任何一个窗口(父母或孩子)聚焦时,所有窗口都被置于最前面
当父窗口最小化时,所有浮动子窗口也是如此。


我对如何做到这一点完全感到困惑,因为没有编辑AvalonDock源代码(我宁愿不提供此选项)。

有没有办法做这些事情之一?

最佳答案

将浮动窗口的属性所有者设置为null,以将其与其逻辑父级分离。

{
  dockManager.LayoutUpdated += DockManager_OnLayoutUpdated;
}

 private void DockManager_OnLayoutUpdated(object sender, EventArgs e)
 {
        foreach (var floatingWindow in dockManager.FloatingWindows)
        {
            if (floatingWindow.Owner != null)
            {
                floatingWindow.Owner = null;
            }
        }
    }

关于wpf - Avalon Dock float anchor 固物可以更独立于 parent 吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30667262/

10-13 09:18