WPF中的UI布局主要有:Grid(網格)、StackPanel(棧式面板)、Canvas(畫布)、DockPanel(泊靠式面板)、WrapPanel(自動折行面板)
一、Grid
1、描述:網格,自定義行和列,並通過行列的數量、行高列寬來調整控件的布局,近似於HTML中的table。
2、特點:
(1)可以定義任意數量的行和列,非常靈活
(2)行的高度和列的寬度可以使用絕對值、相對比例、自動調整的方式進行精確設定,並可以設置最大和最小值。
(3)內部元素可以設置自己所在的行和列,還可以設置自己縱向跨幾行,橫向跨幾列。
(4)可以設置Children元素的對齊方向。
3、應用場合:
(1)UI布局的大框架設計
(2)大量UI元素需要成行或者成列對齊的情況。
(3)UI尺寸改變的時候,元素需要保留固有的寬度和高度比例
(4)UI后期可能有較大的變更或擴展。
二、StackPanel
1、描述:棧式面板。可將包含的元素在水平或垂直方向排成一條線,當移除一個元素后,后面的元素會自動向前填充空缺。
2、使用場合:
(1)同類元素需要緊湊排列(如制作菜單和列表)
(2)移除其中的元素后能夠自動補缺的布局或者動畫。
三、Canvas
1、描述:畫布,內部元素可以使用以像素為單位的絕對坐標進行定位,類似於Windows Form的布局方式。
2、使用場合:
(1)一經設計,基本上不用再有改動的小型布局(如圖標)
(2)藝術性較強的布局
(3)需要使用大量縱橫坐標來進行絕對定位的布局。
(4)依賴縱橫坐標的動畫
四、DockPanel
1、描述:泊靠式面板,內部元素可以選擇泊靠的方向,類似於Winform中設置控件的Dock屬性。
五:WrapPanel
1、描述:自動折行面板,內部元素在排滿一行后能夠自動折行,類似於HTML中的流式布局。