5

很多时候,我看到MeasureOverride和中的代码ArrangeOverride是相同的,除了调用 measure 并在各自的方法中排列以及一些附加逻辑,如动画等ArrangeOverride

如果您只有一种方法可以在一个地方传递您的测量逻辑并且布局系统会记住这一点并且在每个项目即将添加时有一个事件并且您应用动画等附加逻辑,这不是很简单吗?

我错过了什么吗?

4

1 回答 1

9

是的,你错过了两者之间的细微差别。

MeasureOverride中,父母孩子想要多大。

ArrangeOverride中,父母告诉孩子它实际上有多少空间以及它被放置在哪里。

这就像你工作中的预算或审查时间:你的老板问你想要多少钱,然后笑着告诉你实际会得到多少以及什么时候得到。就像孩子控制一样,你必须尽你所能。

对此有一点看法,WPF 的关键点之一是可扩展的 UI。就像上面的老板/员工场景一样,父/子控件的需求需要保持平衡。仅仅因为子控件请求一定的大小,并不意味着父控件有空间可以提供,因此需要将其传达给子控件。OTOH,随着显示器尺寸的增加,您的孩子最终可能会获得比实际需要更多的空间。

于 2010-11-17T07:27:45.577 回答