use*_*535 6 c# wpf wpf-controls measureoverride arrangeoverride
我在这里的问题更多是理论问题而不是功能问题。所以我正在寻找的是一个可以用一些文档来支持的答案。
我发现自己需要为 wpf 控件的子项进行一些自定义测量/安排?
我试图实现的一些伪代码:
MeasureOverride(size)
{
foreach(child in children)
{
if(condition)
{
child.measure(size)
}
else
{
child.measure(customSize)
if(...)
{
...
}
...
}
}
}
Run Code Online (Sandbox Code Playgroud)这个的所有逻辑都应该存在于 MeasureOverride 中,还是我应该只使用作为所有子项的参数接收的大小调用 measure,然后在ArrangeOverride 中执行逻辑?谢谢!
我想你可以使用任何尺寸。MeasureOverride 方法的参数指定控件可用的大小。控件可以返回它需要的任何 DesiredSize,即使它大于 AvailableSize。
子控件也会执行相同的操作。对子项调用 Measure 的结果是设置该子项的 DesiredSize。同样,这可以是任何东西,具体取决于孩子的测量逻辑。在 MeasureOverride 方法中,您可以使用逻辑来理解返回的 DesiredSizes。
如果您有测量逻辑,它绝对应该位于 MeasureOverride 方法(或辅助方法)中,而不是位于 ArrangeOverride 中。ArrangeOverride 仅用于定位。
我确信您已经检查过此内容,但我仍然会发布链接。 http://msdn.microsoft.com/en-us/library/system.windows.frameworkelement.measureoverride%28v=vs.110%29.aspx
| 归档时间: |
|
| 查看次数: |
5096 次 |
| 最近记录: |