深入探究布局系统与自定义控件开发
1. ArrangeOverride() 方法解析
在布局过程的第二阶段,布局系统会根据 UI 的其余部分计算可分配给容器的最大空间,然后调用 ArrangeOverride() 方法,并将该值作为 finalSize 参数传入。需要注意的是, finalSize 的值可能小于 MeasureOverride() 方法计算出的期望大小。
ArrangeOverride() 方法的实现需要确定一种策略,以便在布局系统确定的 finalSize 范围内布局子元素。实际布局每个子元素的过程是通过调用子元素自身的 Arrange() 方法完成的。 Arrange() 方法接受一个 Rectangle 参数,该参数确定了子元素应定位的最终区域。 ArrangeOverride() 方法的返回值是容器所需的最终大小,除非实现能够在小于传入的 finalSize 值的空间内完成所有布局,否则在大多数情况下,返回值就是 finalSize 参数中包含的未更改的值。
2. WrapPanel 布局容器实现
以下是 WrapPanel 的实现代码:
布局系统与自定义控件开发详解
超级会员免费看
订阅专栏 解锁全文
254

被折叠的 条评论
为什么被折叠?



