1.stackpanel:堆栈面板,通过orientation属性设置子元素的布局排列方向为“vertical”(垂直)和“horizontal”(水平),不写其默认值为“vertical”,当设置为“vertical”时子元素会沿垂直方向拉伸,反之设置为“horizontal”时子元素会沿水平方向拉伸。

2.dockpanel:支持子元素停靠在面板的任意一条边上,通过附加属性dock控制他们的停靠位置(left、top、right、bottom),填充空间按照“先到先得”的原则,最后一个加入面板的子元素将填满剩下的空间,如不想将最后加入面板的元素填满剩下的空间将属性lastchildfill值设为“false”,默认为“true”。

3.wrappanel:可换行面板与stackpanel相似,通过orientation属性设置子元素的排列顺序,从左至右按顺序位置定位子元素,当前行无法放下元素时断开至下一行,或者排序按照从上至下或从右至左的顺序进行,通过itemheight可以设置当前面板中所有子元素的高度,当然也有itemwidth设置所有子元素的宽度。

 4.canvas:面板是最轻量级的布局容器,它不会自动调整内部元素的排列和大小,不指定元素位置,元素将默认显示在画布的左上方。canvas主要用来画图。canvas默认不会自动裁剪超过自身范围的内容,即溢出的内容会显示在canvas外面,这是因为canvas的cliptobounds属性默认值是“false”,我们可以显式地设置为“true”来裁剪多出的内容。下面xaml代码简单演示了canvas面板的使用。

5.grid:比起其他panel,功能是最多最为复杂的布局控件。它由<grid.columndefinitions>列元素集合和<grid.rowdefinitions>行元素集合两种元素组成。而放在grid面板中的元素必须显式采用附加属性定义其所在行和列,否则元素均默认放置在第0行第0列。