# レイアウト システム
中級
プログラマー
デザイナー
Stride UI のレイアウトシステムは、Windows Presentation Foundation(WPF)に似ています。WPF のレイアウトシステムの詳細については、[MSDNドキュメント](https://docs.microsoft.com/en-us/dotnet/desktop/wpf/advanced/layout)を参照してください。WPF のドキュメントの多くは、Stride のレイアウトシステムにも当てはまります。
Stride UI システムのすべての @'Stride.UI.UIElement' には、それを取り巻く矩形があり、レイアウトで使用されます。Stride は、@'Stride.UI.UIElement' の要件、利用可能な画面スペース、制約、マージン、余白、および @'Stride.UI.Panels.Panel' 要素の特別な動作(特定の方法で子を配置する)に従って、レイアウトを計算します。
レイアウトシステムは、このデータを再帰的に処理して、UI システム内のすべての @'Stride.UI.UIElement' の位置とサイズを計算します。
## Measure と Arrange
Stride では、レイアウトの処理を 2 つのパスで再帰的に行います。[Measure](xref:Stride.UI.UIElement.Measure(Stride.Core.Mathematics.Vector3)) と [Arrange](xref:Stride.UI.UIElement.Arrange(Stride.Core.Mathematics.Vector3,System.Boolean)) です。
### Measure
[Measure](xref:Stride.UI.UIElement.Measure(Stride.Core.Mathematics.Vector3)) パスでは、各要素は、@'Stride.UI.UIElement.Width', @'Stride.UI.UIElement.Height', @'Stride.UI.UIElement.Margin'などのプロパティに従って、[DesiredSize](xref:Stride.UI.UIElement#Stride_UI_UIElement_DesiredSize) を再帰的に計算します。
一部の @'Stride.UI.Panels.Panel' 要素は、[Measure](xref:Stride.UI.UIElement.Measure(Stride.Core.Mathematics.Vector3)) を再帰的に呼び出して、子要素の [DesiredSize](xref:Stride.UI.UIElement#Stride_UI_UIElement_DesiredSize) を決定し、それに従って動作します。
### Arrange
[Arrange](xref:Stride.UI.UIElement.Arrange(Stride.Core.Mathematics.Vector3,System.Boolean)) パスは、以下のプロパティを考慮して、要素を配置します。
* @'Stride.UI.UIElement.Margin'
* @'Stride.UI.UIElement.Width'
* @'Stride.UI.UIElement.Height'
* @'Stride.UI.UIElement.HorizontalAlignment'
* @'Stride.UI.UIElement.VerticalAlignment'
* @'Stride.UI.Panels.Panel'
* specific [Arrange](xref:Stride.UI.UIElement.Arrange(Stride.Core.Mathematics.Vector3,System.Boolean)) rules
## 関連項目
* [MSDN WPF:レイアウト](https://docs.microsoft.com/en-us/dotnet/desktop/wpf/advanced/layout)
* [UI ページ](ui-pages.md)
* [UI ライブラリ](ui-libraries.md)
* [UI エディター](ui-editor.md)
* [シーンに UI を追加する](add-a-ui-to-a-scene.md)