Table of Contents

布局系统

中级 程序员 设计师

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 规则

另请参阅