1、StackPanel
栈面板,可以将元素排列成一行或者一列。
其特点是:每个元素各占一行或者一列。Orientation属性指定排列方式:Vertical(垂直)【默认】、Horizontal(水平)。默认情况下,水平排列时,每个元素都与面板一样高;垂直排列时,每个元素都与面板一样宽
2、WrapPanel
环绕面板,当元素布局到达边界时,可以自动换行。用法与StackPanel一样。
3、DockPanel
停靠面板,可以将面板的某一边指定给每个元素,当面板大小变化时,按钮将根据指定的边进行停靠。
在DockPanel中,指定停靠边的控件,会根据定义的顺序占领边角,所有控件绝不会交叠。默认情况下,后添加的元素只能使用剩余空间,最后一个元素填充所有剩余空间。
如果不希望最后一个元素填充剩余区域,可以将DockPanel属性LastChildFill设置为False。
4、Canvas
画布,用于完全控制每个元素的精确位置。
他是布局控件中最为简单的一种,直接将元素放到指定位置,主要来布置图画。
使用Canvas时,必须指定一个字元素的位置(相对于画布),否则所有元素都将出现在画布的左上角。
调整位置用Left、Right、Top和Bottom四个附加属性。
如果Canvas是窗口主元素,用户改变窗口大小时,Canvas也会随之变化,字元素的位置也会随之移动,以保证相对于Canvas的位置属性不变。
Canvas允许子元素的部分或全部超过其边界,默认不会剪裁子元素,同时可以使用负坐标,因此画布不需要指定大小。
如果想复制画布内容,将ClipToBounds设为true即可。
5、Grid
网格面板,以表格形式布局元素,对于整个面板上的元素进行布局,有效地解决多行之间、多列之间位置的一致性。
Grid很像网页中的Table,定义一个网格,需要定义行、列,划分单元格,坐标从(0,0)开始。列宽和行高,分别可以在ColumnDefinition、RowDefinition里面指定Width、Height的值。
首先定义网格,然后定义元素,并指定元素所在的单元格。
如果不定义单元格,默认将元素放到第一个单元格(0,0)。
6、UniformGrid
均布网格, 顾名思义,所有单元格均匀排布,大小都相同。你可以为其指定行数Rows和列数Columns,UniformGrid将根据行列平分画布,每个控件一个单元格。
7、Border
在另一个元素四周绘制边框和/或背景。
8、InkCanvas
定义接收和显示墨迹笔划的区域。
7、常用属性
属性:
Orientation:取相
HorizontalAlignment:水平对齐特征
VerticalAlignment:垂直对齐特征
Margin:元素外边距
BorderBrush:边界画刷
BorderThickness:边界厚度
Padding:边框和内部元素距离
CornerRadius:圆角尺寸
LastChildFill:该值指示 DockPanel中的最后一个子元素是否拉伸以填充剩余的可用空间。
UseLayoutRounding:是否应向此元素的大小和位置布局应用布局舍入。
EditingMode:获取或设置活动指针设备使用的用户编辑模式。
-
None=0// 忽略鼠标和手写笔输入
-
Ink = 1// 允许用户绘制批注,默认模式。使用鼠标或者手写笔绘图时,会绘制笔画
-
GestureOnly = 2// 不远许用户绘制笔画批注,但会关注预先定义的特定姿势,由System.Windows.Ink.ApplicationGesture定义笔势
-
InkAndGesture = 3// 允许用户绘制壁画批注,也可以识别预先定义的姿势
-
Select = 4// 允许用户选择保存在Children集合中的元素,要选择一个元素用户必须单机该元素或者拖动套索选择该元素,一旦选择一个元素就可以移动该元素,改变其尺寸或将其删除
-
EraseByPoint = 5// 擦除鼠标选中的笔画
-
EraseByStroke = 6// 擦除选中的一笔,开始到结束都会擦除
附加属性:
DockPanel.Dock设置在DockPanel里面的位置。
Grid.Column:指示应显示 Grid中的哪个子内容列。
Grid.Row:指示应显示 Grid中的哪个子内容行。
Grid.RowSpan:该值表示在一个 Grid中子内容所跨越的总行数。
Grid.ColumnSpan:该值表示在一个 Grid 中子内容所跨越的总列数。
Canvas.ZIndex:该值表示元素在 Z 平面中的显示顺序。