【问题标题】:WPF ArrangeOverride questionWPF ArrangeOverride 问题
【发布时间】:2009-06-08 01:56:11
【问题描述】:

似乎传递给 ArrangeOverride 方法的最终宽度(或高度)永远不会小于从 MeasureOverride 方法返回的所需宽度(或高度)。

这总是正确的吗?

【问题讨论】:

    标签: wpf


    【解决方案1】:

    我相信您可以假设传入的最终大小将小于或等于所需的大小,但并不总是准确的大小。安排是在它决定了实际尺寸之后,所以它通常是实际值(与常见的 +Inf 的测量相反)

    【讨论】:

    • 在我看来,传递给 ArrangeOverride 的最终大小是基于我在 MeasureOverride 中返回的。如果我返回一个虚假的值(例如 10,000 的高度),它会被传递给 ArrangeOverride,即使是我的应用程序也是如此。窗口高度只有几百个像素。
    • 这取决于您的面板所在的容器 - 例如,如果您在 ScrollViewer 中,它将为您提供所需的所有空间。
    • 正如保罗所说,容器有所作为。我遇到了与问题相同的问题。然后我将容器从 StackPanel 替换为 Grid,突然 ArrangeOverride 开始按预期运行。
    • @PaulBetts 当你说“它会腾出所有空间”时,它会在哪里这样做?如果我从Canvas 继承并覆盖ArrangeOverride 以实现类似这样的东西:foreach (var child in base.InternalChildren) { child.Arrange(new Point(.., A_SMALLER_SIZE },那么我的画布子的大小不会被限制为“A_SMALLER_SIZE”吗?
    猜你喜欢
    • 2014-08-23
    • 2011-07-07
    • 2011-01-25
    • 2018-01-30
    • 2010-12-15
    • 2011-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多