WPF 入门 -- Layout:Grid, DockPanel and StackPanel
来源:互联网 发布:车销 软件 编辑:程序博客网 时间:2024/05/21 19:21
在WPF中,可以用Grid、DockPanel和StackPanel来做布局。
1.Grid
Grid是三者之间最灵活强大的,在其父控件中,Grid自动充满其Margin以外的所有空间,并可以自动响应resize。可以看作,Grid将Margin以外的父控件的空间,按照其行定义(Grid.RowDefinitions)和列定义(Grid.ColumnDefinitions)划分成若干单元格,而每个单元格可被看成“父控件的空间”从而继续进行进一步布局。
1.1 实例
例子中的布局如下:
上例中,父控件的空间首先被分为3行4列的12个单元格。第3列的4个单元格被合并,合并后的空间又由Grid分为3行2列的6个单元格。
可以看出,用Gird控件,可以将父控件的空间划分成任意单元格,每个单元格可以被当成父控件空间,其内可以再次布局;单元格又可被合并。
1.2 Grid的特点
Grid的便利之处在于:
1)Grid本身并不占用任何空间,可以看作是用单元格对父控件空间的划分;
2)各个行定义的高度(或列定义的宽度)可以是成比例的(*/n*)、按需的(Auto)、固定的,自动响应父控件的Resize;
3)可以合并单元格(Grid.RowSpan / Grid.ColumnSpan)
但是,如果整个页面的布局都用Grid的话,可读性会降低。
2.DockPanel
顾名思义,DockPanel内的控件是“停靠”在父控件空间的某处(左、上、右、下)的。
2.1示例
例子中的布局如下:
2.2 DockPanel的特点
DockPanel利用在子控件中设定DockPanel.Dock="Left"/"Top"/"Right"/"Bottom"来指定该子控件的泊靠位置,其布局效果与子控件书写顺序是相关的。例如,三个子控件的书写顺序是1)-DockPanel.Dock="Left",2)-DockPanel.Dock="Right" 3),布局效果是从左到右1、3、2,1泊靠在左边,3泊靠在右边,而2在中间填满。DockPanel有一个叫做的LastChildFill属性,默认值为真,在该情况下,左右一个书写的子控件的DockPanel.Dock设定是无效的,自动人为是DockPanel.Dock=“Fill”。
3 StackPanel
StackPanel的功能最简单,只支持将子控件按书写顺序竖排(Orientation="Vertical" 默认)或者横排(Orientation="Horizontal")。
3.1 示例
例子中的布局如下:
3.2 StackPanel的特点
StackPanel中子控件书写最为简介,但是功能也最为简单。
结合三者特点,在做整个页边的布局时,Grid较为适合,它可以像划分表格一样,将整个页面划分成若干单元格,布局时利用行列标号将子控件放在任意指定位置;且自动响应Resize;而做固定大小的局部布局时,DockPanel和StackPanel比较适合,写法简明,层次清晰。
- WPF 入门 -- Layout:Grid, DockPanel and StackPanel
- WPF 入门 -- Layout:Grid, DockPanel and StackPanel
- WPF 布局 - Grid, StackPanel, DockPanel, WrapPanel
- WPF快速入门2—布局WrapPanel,DockPanel,StackPanel
- WPF(Grid , StackPanel布局等入门)
- WPF中的StackPanel、WrapPanel、DockPanel
- WPF编程学习——布局 StackPanel、WrapPanel、DockPanel、Canvas、Grid
- WPF and Silverlight 学习笔记(七):WPF布局管理之StackPanel、WrapPanel、DockPanel
- WPF stackpanel在dockpanel中的位置
- wpf之布局控件stackpanel、wrappanel、dockpanel的前世今生
- WindowsPhone中Grid StackPanel Canvas控件入门
- 【WPF】—StackPanel && Grid 初识布局容器(1)
- Grid layout入门
- WPF DockPanel
- UWP入门(三) -- StackPanel与Grid的区别
- WPF-使用面板控制内容布局,比较Canvas,WrapPanel,StackPanel,Grid,ScrollViewer
- WPF-使用面板控制内容布局,比较Canvas,WrapPanel,StackPanel,Grid,ScrollViewer
- wpf学习笔记---StackPanel
- R12中注册客户化应用为多组织应用
- Ixiaohan443977226-1.0
- C++操作符重载手册
- 思考mysql内核之初级系列10---mysql内核调试方法
- TortoiseSVN本地配置
- WPF 入门 -- Layout:Grid, DockPanel and StackPanel
- ubuntu快速搭建LAMP
- What I have done
- SQL新手报到
- SQL新手报到
- N 个元素的数组,求第K大的元素
- MFC下 报表打印程序的实现
- Integer Numbers zoj 3365
- poj2780解题报告