WPF布局
WPF布局容器有6种,分别是StackPanel、WrapPanel、DockPanel、Grid(网格)、UniformGrid、Canvas(画布)。
StackPanel
在单个行中水平或垂直排列对象,Orientation属性分别: Horizontal / Vertical。
WrapPanel
按顺序从左到右排列对象。 面板最右边空间不足时,它会将内容换行到下一行,并采用从左到右、从上到下的换行顺序。 还可以使自动换行面板的方向垂直,以便对象从上到下、从左到右排列。
WrapPanel默认排列方向与StackPanel相反,WrapPanel的Orientation默认为Horizontal。
DockPanel
排列对象,使它们停留或停靠在面板的一个边缘。
默认DockPanel中的元素具备DockPanel.Dock属性, 该属性为枚举具备: Top、Left、Right、Bottom。
默认情况下, DockPanel中的元素不添加DockPanel.Dock属性, 则系统则会默认添加 Left。
DockPanel有一个LastChildFill属性, 该属性默认为true, 该属性作用为, 当容器中的最后一个元素时, 默认该元素填充DockPanel所有空间。
Grid(网格)
在行和列中排列对象。Grid具备分割空间的能力。
RowDefinitions / ColumnDefinitions 用于给Grid分配行与列。
ColumnSpan / RowSpan 则用于设置空间元素的跨列与跨行。
<Grid> <Grid.RowDefinitions><!--行--> <RowDefinition/> <RowDefinition/> </Grid.RowDefinitions> <Grid.ColumnDefinitions><!--列--> <ColumnDefinition/> <ColumnDefinition/> <ColumnDefinition/> </Grid.ColumnDefinitions> <Button Content="按钮1" Grid.Row="0" Grid.Column="1" Grid.ColumnSpan="2"></Button> <Button Content="按钮2" Grid.Row="1" Grid.Column="0" Margin="10"></Button> </Grid>
Canvas(画布)
按任何所需方式排列对象。 当用户运行你的应用时,这些元素将在屏幕上具有固定位置。
该容器就相当于一个 “地图”, 包含内的所有控件元素, 则都通过使用XY来定位。
UniformGrid
将对象排列到相等或统一的网格区域中。 此面板非常适用于排列图像的列表。
参考资料: