WPF 布局

WPF用于布局的面板主要有6个,StackPanel(栈面板)、WrapPanel(环绕面板)、DockPanel(停靠面板)、Canvas(画布)、Grid(网格面板)和UniformGrid(均布网格)。

1、StackPanel(栈面板)

可以将元素按顺序排列成一行或者一列,其特点是:

a、每个元素各占一行或者一列;

b、Orientation属性:Vertical(垂直)【默认】、Horizontal(水平)。默认情况下,水平排列时每个元素都与面板一样高;垂直排列时每个元素都与面板一样宽;

c、如果包含的元素超过了面板空间,它只会截断多出的内容。 元素的Margin属性用于使元素之间产生一定得间隔。

   

效果图:

2、WrapPanel(环绕面板)

将各个控件从左至右按照行或列的顺序罗列,当长度或高度不够时就会自动调整进行换行,Orientation属性控制是水平还是垂直排列。

效果图:

3、DockPanel(停靠面板)

对每个子元素进行排序,并将根据指定的边进行停靠,多个停靠在同侧的元素则按顺序排序。在DockPanel中,指定停靠边的控件,会根据定义的顺序占领边角,所有控件绝不会交叠。

注意:默认情况下,后添加的元素只能使用剩余空间,无论对DockPanel的最后一个子元素设置任何停靠值,该子元素都将始终填满剩余的空间。如果不希望最后一个元素填充剩余区域,可以将DockPanel属性LastChildFill设置为false,还必须为最后一个子元素显式指定停靠方向。

效果图:

4、Canvas(画布)

用于完全控制每个元素的精确位置。使用Canvas,必须指定一个子元素的位置(相对于画布),否则所有元素都将出现在画布的左上角;用Left、Right、Top和Bottom四个附加属性来调整位置。

 注意:Canvas允许子元素的部分或全部超过其边界,默认不会裁剪子元素,同时可以使用负坐标,即溢出的内容会显示在Canvas外面,这是因为默认 ClipToBounds=”False”,因此画布不需要指定大小。如果想复制画布内容,将ClipToBounds设为true即可。

效果图:

5、Grid(网格面板)

顾名思义就是“网格”,以表格形式布局元素,对于整个面板上的元素进行布局,它的子控件被放在一个一个事先定义好的小格子里面,整齐配列。主要是在RowDefinitions和ColumnDefinitions属性中添加一定数量的RowDefinitions和 ColumnDefinitions元素,从而定义行数和列数。

注意:尽管Grid面板被设计成不可见的,但可将Grid.ShowGridLines属性设置为True,可以很清晰的看到网格的布局。

 

 Grid面板支持以下三种设置尺寸的方式:

名称

说明

绝对设置尺寸方式

使用设备无关单位准确地设置尺寸,就是给一个实际的数字,但通常将此值指定为整数。这是最无用

的策略,因为这种策略不够灵活,难以适应内容大小和容器大小的改变,而且难以处理本地化。

自动设置尺寸方式

值为Auto,实际作用就是取实际控件所需的最小值,每行和每列的尺寸刚好满足需要,这是最有用

的尺寸设置方式。

按比例设置尺寸方式

按比例将空间分割到一组行和列中。这是对所有行和列的标准设置。通常值为*或N*,实际作用就是取尽可能大的值,当某一列或行被定义为*则是尽可能大,当出现多列或行被定义为*则是代表几者之间按比例方设置尺寸。

 

效果图:

6、UniformGrid(均布网格)

一种横向、纵向的网格分割都是均等的布局类型,故称为 " 均分布局 "。

特点如下:

a、 各个单元格的大小完全相同,宽与高分别相同;

b. 默认情况下,单元格的数量取决于放入的控件的数量,且单元格一定是行、列数相同,即 1X1、2X2 、3X3 等等的单元格分布;

3、UniformGrid 有两个属性,分别是:Columns 和 Rows ,它们是分别用来指定当前的最大列数和最大的行数,如果只设置了其中一个而不设置另外一个的话,那么没有设置的那个默认为 1;在设置的这两个属性的情况下,UniformGrid 不再会按照行、列数相同来分布,而是按照用户指定的 Columns 和 Rows 来分布。

效果图:

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值