1.布局的原则
(1)屏幕适应程序,不要显示设置的元素(控件)的尺寸,可以设置最小或者最大尺寸
(2)不应使用屏幕坐标元素位置,由容器决定
(3)容器可以嵌套
2.布局的容器
WPF的顶级元素:Pag、Window、 Application
(1)Grid(网格)
<window>
<Grid>
.....
</Grid>
</window>
通过Grid.RowDefinitions和Grid.CoulmDefinitions去配置和设置网格的行和列,Grid.Row和Grid.Column设置控件在网格的位置。
<Grid.RowDefinitions>
<RowDefinition Height="50"/>
<RowDefinition Height="310"/>
<RowDefinition Height="50"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="30">
</Grid.ColumnDefinitions>
(2)StackPanel(栈容器)
【1】布局特点
第一、可以把内部元素在纵向或者横向上紧凑排列,形成栈式布局,通俗来说就是把元素堆到一块。
第二、当把前面的元素去掉后,后面的会整体向前移动,占领原有元素空间。
【2】适用场合
第一、同类型原型需要紧凑排列(比如制作菜单或者列表)
第二、移除其中的元素后能够自动补缺的布局,或者动画。
【3】三个属性
Orientaion 属性:决定内部元素是横向还是纵向积累
HorizontalAlignment 属性:决定内部元素水平方上的对齐方式。
VerticalAlignment 属性:决定内部元素垂直方向上的对齐方式。
(3)Canvas(画布)
类似于winform一样,可以拖动控件,在没有确定控件的位置时,在WPF中使用Canvas的效果对于其他容器而言想过会更好一些。
应用场合:在一些基本上不会有改动的或者小改动的布局上,艺术性较强的布局,需要大量哼横纵坐标绝对定位的布局,依赖于坐标的动画 (如:登录窗口)
(4)DockPanel
【1】布局特点
根据 Dock 属性值,元素向指定方向累积,切分 DockPanel 内部剩余空间,就像传播停靠一样。
【2】适用场合
需要自动填满剩余空间的布局。(最后一个元素自动填满 DockPanel 内的剩余空间)
(5)WrapPanel 面板(流式布局,类似 web 中 div 的 float)
【1】布局特点
第一、在流延伸的方向上会排列尽可能多的控件,排列不下的控件会新起一行。
第二、使用 Orientaion 属性控制流延伸的方向。
【2】适用场合 需要根据容器大小动态排列控件的场合