Xceed AvalonDock 3.2 DockWidth/Height 没有效果
Xceed AvalonDock 3.2 DockWidth/Height has no effect
我在我雇主的应用程序中使用 AvalonDock(Extended.Wpf.Toolkit,免费版)。在 LayoutAnchorablePane
或 LayoutDocumentPane
中设置 DockWidth
或 DockHeight
没有(可见)效果。相反,每个窗格相对于其兄弟姐妹(它们默认为 1*)占用等量的 space。
它们可以在运行时使用内置拆分器调整大小,但这对编程或设计时没有帮助。我使用了一些解决方法,例如:
- 设置
DockMinWidth
/DockMaxWidth
到
相同的值,但显然分离器停止移动。
- 使用反射来暴力改变大小。这很脆弱。
这两个都是我想避免的肮脏黑客。
我知道这是过去完成的 <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 给我指出了正确的方向。
确实是内部代码的问题。以下修复了它:
- 向
ILayoutPositionableElement.cs
添加一个标志。我把它命名为ForceFixedDockSize
.
- 在
LayoutPositionableGroup.cs
中实施。
- 在每次覆盖
OnFixChildrenDockLengths
时,在设置 DockWidth
或 DockHeight
之前检查标志是否为真。
我怀疑存在这种行为的原因是为了使默认布局看起来一致。此更改使该行为成为可选行为。
见my fork。
我在我雇主的应用程序中使用 AvalonDock(Extended.Wpf.Toolkit,免费版)。在 LayoutAnchorablePane
或 LayoutDocumentPane
中设置 DockWidth
或 DockHeight
没有(可见)效果。相反,每个窗格相对于其兄弟姐妹(它们默认为 1*)占用等量的 space。
它们可以在运行时使用内置拆分器调整大小,但这对编程或设计时没有帮助。我使用了一些解决方法,例如:
- 设置
DockMinWidth
/DockMaxWidth
到 相同的值,但显然分离器停止移动。 - 使用反射来暴力改变大小。这很脆弱。
这两个都是我想避免的肮脏黑客。
我知道这是过去完成的 <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 给我指出了正确的方向。
确实是内部代码的问题。以下修复了它:
- 向
ILayoutPositionableElement.cs
添加一个标志。我把它命名为ForceFixedDockSize
. - 在
LayoutPositionableGroup.cs
中实施。 - 在每次覆盖
OnFixChildrenDockLengths
时,在设置DockWidth
或DockHeight
之前检查标志是否为真。
我怀疑存在这种行为的原因是为了使默认布局看起来一致。此更改使该行为成为可选行为。
见my fork。