我已经实现了一个受WPF测量和排列布局系统激发的GUI系统。虽然它适用于DockPanels和StackPanels,但我最近需要使用WrapPanels。我发现,在目前状态下,我的GUI系统无法支持包装,因为我需要知道基于祖先的最大可用大小,并且我的测量目前没有这些信息。
我检查了WPF文档,发现他们的Measure
方法将大小限制作为参数:Size Measure(Size availableSize)
。这让我很困惑。根据我对它的理解,WPF首先测量从叶子到根部的测量,然后从根部到叶子的测量。然而,在这种情况下,在测量阶段需要来自祖先的可用尺寸。这似乎与我相矛盾,因为祖先的大小取决于他们后代的大小。
WPF如何在测量过程中提供此availableSize
值?
答案 0 :(得分:2)
我认为你的理解重新测量是不正确的 - 它从根到叶而不是从根到叶。实际上,在其自己的测量过程中,父母控制员有责任在其子女身上调用Measure()
。因此,父母可以计算出其子女可用的空间,并且在测量时可以通过。