使用Grid来对WPF页面进行布局排版.docx_第1页
使用Grid来对WPF页面进行布局排版.docx_第2页
使用Grid来对WPF页面进行布局排版.docx_第3页
使用Grid来对WPF页面进行布局排版.docx_第4页
使用Grid来对WPF页面进行布局排版.docx_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

使用Grid来对WPF页面进行布局排版对于以前用Windows Form来开发客户端程序的程序员,在使用WPF开发客户端的程序时,在窗体布局上将是他必须面对的一个坎。 布局产生困惑的一个典型场景如下:我们在开发WPF窗体时候,我们会发现,当我们把菜单控件(Menu)、工具条(ToolBar、ToolBarPanel)、状态条(StatusBar)这些最常见的页面元素拖动到WPF窗体的时候。我们会发现WPF窗体中,这些页面元素可以放置在任何位置,而不是之前Windows Form那样:主菜单在最上面,状态条在最下面。WPF中每一个元素如何布局变得更加灵活了,这样可以让美工更好的设计出更漂亮的页面,但是也会让一些缺乏艺术细胞的技术人员页面布局变得巨难看无比。比如我最近在写个简单的调查系统客户端维护工具,使用WPF程序来开发,这个页面布局的事情,就让我非常头大。WPF跟布局有关的控件很多,System.Windows.Controls.Panel是这些所有布局有关的类的基类。需要注意的是,我们在页面布局上一般都是使用这个类的扩展类来处理布局,而不是使用这个类。这些扩展类包括:System.Windows.Controls.Canvas(画布)System.Windows.Controls.DockPanel(停靠布局)System.Windows.Controls.Grid(表格)System.Windows.Controls.StackPanel(堆栈布局)System.Windows.Controls.VirtualizingPanel(虚堆栈布局)System.Windows.Controls.WrapPanel(覆盖布局)我自己在使用中觉得:对于我们从Window Form习惯来的技术人员,使用Grid(表格)布局就可以满足我们绝大多数的布局需求,而且简单。下面我们就来介绍如何使用Grid布局控件来进行窗体布局设计。Grid布局控件很类似HTML标签中的Table标签。我们事先把一个区域划分成不同的表格,然后决定,某些控件放在那个表格中,那些控件是要跨多少个表格来放置。比如下面窗体效果,是由后面的XAML文件来实现这个效果的。这个窗口布局上,我使用了Grid控件我把这个窗口首先划分成三行三列的一个Grid。如上图我对这个窗体的拆分。最上面的显示多少条目、下拉列表框和刷新按钮,被放在第一行,跨三列;未发布的调查表列表框被放在第二行,第一列;支持来回拖动的GridSplitter被我放在了第二列,第二行;ListView则被我放在了第二行,第三列;最下面的确定,取消按钮被我放在了第三行,跨了三个列。上述界面效果的XAML文件如下:显示多少条目:5102050刷新确 定取 消 使用Grid布局控件的时候,一些知识点如下:我们可以通过定义Grid的ColumnDifinitions和RowDifinitions来实现对于表格的定义,然后根据Grid.Column和Grid.Row的对象来制定位置的方式实现布局。比如上面XAML文件中, 就定义了一个三行三列的表格。ColumnDefinition和RowDefinition分别只需要定义Width和Height如果我们希望列的宽度或者行的高度是根据内部元素来决定的,我们可以定义为Auto,如果我们希望某列或者某行的宽度或者告诉是整体的其他部分,则可以定义成*,如果我们希望其中一项的长度是另外一项的5倍,则可以一个定义成*,一个定义成5*。我们看ColumnDefinition或者RowDefinition的Width或者Height属性的时候,我们可以看到这个属性不是int或者double类型,而是GridLength类型。下面一个简单的Grid定义来演示上面定义长度的几种写法:1234567890abc 这个XAML文件的效果图如下:图2此外,我们还可以使用Grid.ColumnSpan、Grid.RowSpan来实现一块布局跨多个表格项的情况。小结我个人觉得,把一个窗体或者页面用表格拆分,然后我们在每个表格项中增加我们规划好的控件,这种布局方案在没有比较

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论