Xceed AvalonDock 3.2 DockWidth / Height无效

时间:2017-09-30 05:31:22

标签: c# wpf avalondock xceed

我在我的雇主的应用程序中使用AvalonDock(Extended.Wpf.Toolkit,免费版)。在xpDockWidth中设置DockHeightLayoutAnchorablePane没有(可见)效果。相反,每个窗格相对于其兄弟节点占用相等的空间量(默认为1 *)。

可以使用内置分割器在运行时调整它们的大小,但这对编程或设计时没有帮助。我使用了一些解决方法,例如:

  • LayoutDocumentPane / DockMinWidth设为 相同的价值,但显然分离者停止移动。
  • 使用反射来强制改变大小。这很脆弱。

这两个都是我想要避免的肮脏黑客。

我知道这是在过去使用DockMaxWidth完成的,但它已被删除很久了。有关相关信息,请参阅ResizingPanel

我还没有在this或源代码中找到答案。 查看我的documentation

这是展示问题的answer

1 个答案:

答案 0 :(得分:0)

This post指出了我正确的方向。

问题确实是内部代码。以下修正了它:

  1. ILayoutPositionableElement.cs添加标记。我把它命名为ForceFixedDockSize
  2. LayoutPositionableGroup.cs
  3. 中实施
  4. OnFixChildrenDockLengths的每个覆盖内部,在设置DockWidthDockHeight之前检查标记是否为真。
  5. 我怀疑这种行为存在的原因是使默认布局看起来一致。此更改使该行为成为可选。

    请参阅my fork