WPF中有五个常用布局,分别为:Grid:网格、DockPanel:泊靠式面板、StackPanel:栈式面板、WrapPanel:自动折行面板、Canvas:画布。
- Grid网格
特点:
1、可以定义任意数量的行和列,非常灵活。
2、行的高度和列的宽度可以使用绝对值、相对比例或自动调整的方式进行精确设定,并可以设置最
大和最小值。
3、内部元素可以设置自己所在的行和列,还可以设置自己纵向跨几行,横向跨几列。
4、可以设置Children元素的对齐方向。
- DockPanel泊靠式面板
特点:
- DockPanel会对每个子元素进行排序,并将根据指定的边进行停靠,多个停靠在同侧的元素则按顺序排序。
- 在DockPanel中,指定停靠边的控件,会根据定义的顺序占领边角,所有控件绝不会交叠。
- 默认情况下,后添加的元素只能使用剩余空间,无论对DockPanel的最后一个子元素设置任何停靠值,该子元素都将始终填满剩余的空间。如果不 希望最后一个元素填充剩余区域,可以将DockPanel属性LastChildFill设置为false,还必须为最后一个子元素显式指定停靠方向。
- StackPanel栈式面板
特点:
- 每个元素各占一行或者一列。
- StackPanel就是将控件按照行或列来顺序排列,但不会换行。通过设置面板的Orientation属性设置了两种排列方式:横排(Horizontal默认的)和竖排(Vertical)
- 如果包含的元素超过了面板空间,它只会截断多出的内容。
- WrapPanel自动折行面板
特点:
- 板将各个控件从左至右按照行或列的顺序罗列,当长度或高度不够时就会自动调整进行换行,后续排序按照从上至下或从右至左的顺序进行。
- Orientation——根据内容自动换行。
当Orientation属性的值设置为 Horizontal:元素是从左向右排列的,然后自上至下自动换行。
当Orientation属 性的值设置为Vertical:元素是从上向下排列的,然后从左至右自动换行。
- Canvas画布
特点:
- 用于完全控制每个元素的精确位置。
- 使用Canvas,必须指定一个子元素的位置(相对于画布),否则所有元素都将出现在画布的左上角。调整位置用Left、Right、Top和Bottom四个 附加属性。
- 如果Canvas是窗口主元素(即最外层的布局面板是Canvas),用户改变窗口大小时,Canvas也会随之变化,子元素的位置也会随之移动,以保证 相对于Canvas的位置属性不变。
- Canvas允许子元素的部分或全部超过其边界,默认不会裁剪子元素。