WPF的度量大小约束如何工作?

时间:2011-01-16 15:07:40

标签: wpf user-interface wrapping measurement

我已经实现了一个受WPF测量和排列布局系统激发的GUI系统。虽然它适用于DockPanels和StackPanels,但我最近需要使用WrapPanels。我发现,在目前状态下,我的GUI系统无法支持包装,因为我需要知道基于祖先的最大可用大小,并且我的测量目前没有这些信息。

我检查了WPF文档,发现他们的Measure方法将大小限制作为参数:Size Measure(Size availableSize)。这让我很困惑。根据我对它的理解,WPF首先测量从叶子到根部的测量,然后从根部到叶子的测量。然而,在这种情况下,在测量阶段需要来自祖先的可用尺寸。这似乎与我相矛盾,因为祖先的大小取决于他们后代的大小。

WPF如何在测量过程中提供此availableSize值?

1 个答案:

答案 0 :(得分:2)

我认为你的理解重新测量是不正确的 - 它从根到叶而不是从根到叶。实际上,在其自己的测量过程中,父母控制员有责任在其子女身上调用Measure()。因此,父母可以计算出其子女可用的空间,并且在测量时可以通过。