StackPanel 適合**小規模線性排列** (如表單欄位、工具列、對話框按鈕區)。子元素按單一方向緊湊堆疊,無間隙、無對齊邏輯,需配合 Margin 與 Alignment 微調。
Vertical (預設,上→下) / Horizontal (左→右)。Margin="3,3" 簡寫 = 左右 3、上下 3。| 屬性 | 適用方向 | 值 | 行為 |
|---|---|---|---|
HorizontalAlignment | Vertical StackPanel | Stretch (預設, 滿寬), Left, Center, Right | 決定元素在橫向剩餘空間中的位置 |
VerticalAlignment | Horizontal StackPanel | Stretch (預設, 滿高), Top, Center, Bottom | 決定元素在縱向剩餘空間中的位置 |
<StackPanel Orientation="Vertical">
<TextBox Margin="5" HorizontalAlignment="Stretch" /> <!-- 滿寬 -->
<Button Margin="5" HorizontalAlignment="Center" Content="OK" /> <!-- 置中 -->
<Button Margin="5" HorizontalAlignment="Right" Content="Cancel" /> <!-- 右對齊 -->
</StackPanel>
ListBox/ListView/DataGrid 預設使用 VirtualizingStackPanel,**僅實例化可視區項目**,大數據效能極佳。
關鍵屬性:VirtualizingPanel.IsVirtualizing="True", VirtualizingPanel.VirtualizationMode="Recycling" (重用容器)。
StackPanel 簡單直接,善用 Margin + Alignment 即可覆蓋 80% 線性佈局需求。