我实现了一个受 WPF 的 Measure and Arrange 游戏布局系统启发的 GUI 系统。虽然它与 DockPanels 和 StackPanels 配合得很好,但我最近需要使用 WrapPanels。我发现,在目前的状态下,我的 GUI 系统不支持换行,因为我需要知道基于祖先的最大可用大小,而我的测量目前是在没有这些信息的情况下完成的。
我检查了 WPF 文档,发现他们的Measure
方法将大小约束作为参数:Size Measure(Size availableSize)
. 这让我很困惑。根据我的理解,WPF首先是从叶子到根的测量,然后是从根到叶子的排列。但是,在这种情况下,在测量阶段需要来自祖先的可用大小。这对我来说似乎是矛盾的,因为祖先的大小取决于他们后代的大小。
WPF 如何availableSize
在测量过程中提供此值?