基本布局控件:
- Canvas:允许任何合适的方式在其中放置子控件,不会限制也不会辅助进行控件位置的摆放。
- DockPanel:该控件可以让其中的子控件贴靠在自己四条边中的一边,最后一个子控件可以充满剩余区域。
- Grid:该控件让子控件的定位变得特别灵活,布局可以分为若干行若干列,则可以在网格布局中进行控件的对齐。
- StackPanel:该控件可以按照水平或垂直方向对控件进行排列。
- WrapPanel:具有与StackPanel接近的特性进行控件排列,但可以根据空间大小进行多行多列的排列。
堆叠顺序:
<Grid>
<StackPanel HorizontalAlignment="Left" Height="128" VerticalAlignment="Top"
Width="284" Orientation="Horizontal">
<Button Content="Button" Height="128" VerticalAlignment="Top" Width="75"/>
<Button Content="Button" Height="128" VerticalAlignment="Top" Width="75"/>
<Button Content="Button" Height="128" VerticalAlignment="Top" Width="75"/>
</StackPanel>
<StackPanel HorizontalAlignment="Left" Height="58" VerticalAlignment="Bottom"
Width="284" Orientation="Vertical">
<Button Content="Button" HorizontalAlignment="Left" Width="284"/>
<Button Content="Button" HorizontalAlignment="Left" Width="284"/>
<Button Content="Button" HorizontalAlignment="Left" Width="284"/>
</StackPanel>
</Grid>
- WrapPanel:StackPanel的扩展版本,如果控件单行无法容下则会安排到下一行。
<WrapPanel Background="AliceBlue">
<Rectangle Fill="#FF000000" Height="50" Width="50" Stroke="Black"
RadiusX="10" RadiusY="10" />
<Rectangle Fill="#FF111111" Height="50" Width="50" Stroke="Black"
RadiusX="10" RadiusY="10" />
<Rectangle Fill="#FF222222" Height="50" Width="50" Stroke="Black"
RadiusX="10" RadiusY="10" />
<Rectangle Fill="#FFFFFFFF" Height="50" Width="50" Stroke="Black"
RadiusX="10" RadiusY="10" />
</WrapPanel>
- Grid控件
可以分为多行多列,以摆放子控件。可以使用RowDifinitions和ColumnDefinitions来进行行列的限定。
可以通过Width、Height、MinWidth、MaxWidth、MinHeight和MaxHeight来进行属性的调整。Width*表示可以占用剩下的控件。
Grid的子控件可以使用Grid.Column和Grid.Row的附加属性限定自己是属于哪个单元格,这两个属性默认值为0.也就是说不填写则会默认位于左上角的单元格中。Grid.ColumnSpan和Grid.RowSpan属性来使自己跨越表格中的多个单元格。
没有Margin属性,按钮会停留在左上角位置。