所有的WPF布局容器都派生自System.Windows.Controls.Panel这个抽象类,主要包含以下5个控件:StackPanel、WrapPanel、DockPanel、Canvas和Grid。下面单独描述每个控件的使用场景。
- StackPanel 用于顺序垂直或者水平排列的子元素。主要是通过它的Orientation属性来控制是水平(horizontal)排列还是垂直排列(vertical)。
- WrapPanel 与StackPanel类似,特别适用于子元素不确定的情况下,在某一行的空间不够的情况下,子元素会被放置到下一列。个人觉得基本没什么用。
- DockPanel 看dock就知道了,肯定是具有边缘停靠的功能
- Canvas 绝对布局,具有上下左右四个属性
- grid 表格方式的布局,类似html中的布局。通过RowDefinitions和ColumnDefinitions属性来定义多上行和多少列。内部元素可以使用Grid的附加属性Grid.Row、Grid.Column、Grid.RowSpan、Grid.ColumnSpan设置自己所在的行、列、纵向跨几行、横向跨几列,通过ShowGridLines属性可以设置一个虚线的表格效果。