布局系统
中级 程序员 设计师
Stride UI 的布局系统与 Windows Presentation Foundation (WPF) 类似。有关 WPF 布局系统的更多信息,请参阅 MSDN 文档。WPF 文档中的大部分内容也适用于 Stride 的布局系统。
Stride UI 系统中的每个 @'Stride.UI.UIElement' 都有一个用于布局的外围矩形。Stride 会根据 @'Stride.UI.UIElement' 的需求、可用的屏幕空间、约束、外边距(margin)、内边距(padding)以及 @'Stride.UI.Panels.Panel' 元素(以特定方式排列子元素)的特殊行为来计算布局。
通过递归处理这些数据,布局系统会计算出 UI 系统中每个 @'Stride.UI.UIElement' 的位置和大小。
测量与排列
Stride 以两个阶段递归执行布局过程:Measure 和 Arrange。
测量(Measure)
在 Measure 阶段,每个元素会根据你设置的属性(如 @'Stride.UI.UIElement.Width'、@'Stride.UI.UIElement.Height' 和 @'Stride.UI.UIElement.Margin')递归计算其 DesiredSize。
某些 @'Stride.UI.Panels.Panel' 元素会递归调用 Measure 来确定其子元素的 DesiredSize,并据此进行相应的处理。
排列(Arrange)
Arrange 阶段会排列元素,并考虑以下因素:
- @'Stride.UI.UIElement.Margin'
- @'Stride.UI.UIElement.Width'
- @'Stride.UI.UIElement.Height'
- @'Stride.UI.UIElement.HorizontalAlignment'
- @'Stride.UI.UIElement.VerticalAlignment'
- @'Stride.UI.Panels.Panel'
- 特定的 Arrange 规则