gpt4 book ai didi

c# - WPF MeasureOverride 和 ArrangeOverride

转载 作者:太空狗 更新时间:2023-10-30 00:51:53 27 4
gpt4 key购买 nike

我这里的问题更多是理论性的,而不是功能性的。所以我正在寻找的是一个可以用一些文档来支持的答案。

我发现自己处于需要为 wpf 控件的子控件做一些自定义测量/安排的情况?

  1. 是否可以根据其他大小限制而不是作为参数接收的大小来测量子项。
  2. 一些我想要实现的伪代码:

    MeasureOverride(size)
    {
    foreach(child in children)
    {
    if(condition)
    {
    child.measure(size)
    }
    else
    {
    child.measure(customSize)
    if(...)
    {
    ...
    }
    ...
    }
    }
    }

这个的所有逻辑都应该存在于 MeasureOverride 中,还是我应该只调用测量并将接收到的大小作为所有子项的参数,然后在 ArrangeOverride 中执行逻辑?谢谢!

最佳答案

我想你可以使用任何尺寸。 MeasureOverride 方法的参数指定可用于控件的大小。控件可以返回它需要的任何 DesiredSize,即使它大于 AvailableSize。

子控件也会做同样的事情。对 child 调用 Measure 的结果是设置了 child 的 DesiredSize。同样,这可以是任何东西,具体取决于 child 的测量逻辑。在您的 MeasureOverride 方法中,您可以使用您的逻辑来理解返回的 DesiredSizes。

如果您有测量逻辑,它绝对应该位于 MeasureOverride 方法(或辅助方法)中,而不是 ArrangeOverride。 ArrangeOverride 仅用于定位。

我确定您已经检查过了,但我仍会发布链接。 http://msdn.microsoft.com/en-us/library/system.windows.frameworkelement.measureoverride%28v=vs.110%29.aspx

关于c# - WPF MeasureOverride 和 ArrangeOverride,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24527529/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com