WPF是一种基于.Net平台的桌面应用程序的技术框架,如果有学过web开发的,就会发现这个其实跟HTML很像,WPF使用的标记语言为XMAL,布局控件是使用WPF的一个基础部分,用于在用户界面中定义和管理元素的位置、大小和排列方式,在我看来,布局控件就像房屋设计一样,房子就这么大,哪里是厨房哪里是客厅,这个都是需要提前布局好的。
这里简单记录一下常见的几种布局控件的特点,以及每种有一个小例子。
①Grid
这个控件应该是最常用的布局控件了,它的作用为:为整个window窗体界面进行分区。
什么意思呢,就是将整个UI页面,划分为多行多列,然后在具体的某行某列,去放置具体的控件。
我们看一下下面的例子,这个例子就是通过grid控件,将这个布局分成了三行两列,然后在具体的地方放置具体的控件。
下面具体看看代码。
下方的这段代码将grid划分为了两列。width=300是设置的第一列的宽度。
<Grid.ColumnDefinitions>
<ColumnDefinition Width="300"/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
后面将Column改成Row的这部分即为行的定义部分。
后面紧跟着三个按钮控件,这个不会的可以以后再说。在这三个控件中,都有一个Grid.xxx,这个是Grid控件给子控件的附加属性,Grid.Row="1",就是说这个元素放在第二行,Grid.ColumnSpan=2,就是说这个控件横跨两列。行列用法都一致。
②StackPanel
这个控件的特点是可以选择将内部控件横着排还是竖着排,上面的那个Grid控件,默认控件是直接占据整个页面的,所以有的时候在一个一个写控件时,用这个会好一点。
Orientation="Horizontal"这行代码的意思就是将内部控件水平排列。
VerticalAlignment这个属性就是设置水平排列时,每个控件在垂直方向的排列情况。
具体的看下面的例子就行。
③WrapPanel
这个控件跟stackpanel挺像的,也是选择内部控件是水平还是竖直排列,但这个有一个特点,就是如果排列的那一行或列满了,就会自动换行。
Orientation="Horizontal"表示横着排列,但满了就自动会下一行
ItemHeight="50" ItemWidth="50"这两个是设置子控件的长宽的
④DockPanel
这个控件也是按顺序排放的,但是其可以使用其附加属性DockPanel.Dock设置子空间具体停靠在界面的哪一个方位,而且这个控件有点占位的意思,就是先到先得,先声明的控件可以先占位置,从下面的例子也能看出来。
LastChildFill="True"这个表示最后声明的控件占满剩下的空间
⑤Canvas
这个空间就好说多了,直接在每个子空间中声明具体上下左右边沿的位置就行。
⑥UniformGrid
这个控件是用来将空间平均分配的,而且这个可以根据你子控件的数量自己分配,也可以手动分配,FirstColumn设置从哪一列开始。
⑦border
这个控件其实也不太算布局控件,简单来说就是画一个框将你想加的控件放进去,这个一般是和样式一块用的,具体来说就是定制控件显示出来的样子,主要有几个属性:
Width:框的宽度
Height:框的高度
BorderThickness:框的厚度
Background:框内的背景色
BorderBrush:框的颜色
CornerRadius:把框做成圆形,这里设置圆角
下面是例子和结果对照:
一般常用的布局控件也就这几个。