Xceed AvalonDock 3.2 DockWidth/Height 没有效果

Xceed AvalonDock 3.2 DockWidth/Height has no effect

我在我雇主的应用程序中使用 AvalonDock(Extended.Wpf.Toolkit,免费版)。在 LayoutAnchorablePaneLayoutDocumentPane 中设置 DockWidthDockHeight 没有(可见)效果。相反,每个窗格相对于其兄弟姐妹(它们默认为 1*)占用等量的 space。

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

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

我知道这是过去完成的 <a href="https://github.com/chandramouleswaran/AvalonDock/blob/master/Version1.2/AvalonDock/ResizingPanel.cs" rel="nofollow noreferrer">ResizingPanel</a>, but it's been long since removed. See this 以获取相关信息。

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

这里有一个 simplified example 演示问题。

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

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

  1. ILayoutPositionableElement.cs 添加一个标志。我把它命名为ForceFixedDockSize.
  2. LayoutPositionableGroup.cs 中实施。
  3. 在每次覆盖 OnFixChildrenDockLengths 时,在设置 DockWidthDockHeight 之前检查标志是否为真。

我怀疑存在这种行为的原因是为了使默认布局看起来一致。此更改使该行为成为可选行为。

my fork