首页
杂志社简介
订购天地
精品源码
稿件征集
稿件录用查询
读者反馈表
广告服务
编程社区
会员优惠措施
 
凡是会员,都享有9.5折优惠。并且,每年评选出一到二名优秀会员,赠送我社特制的小礼品。
 
网上订阅
杂志社图书列表
2010年
2010年上半月(12本)定价:108元 优惠价:97.2元 2010年下半月(12本)定价:108元 优惠价:97.2元
2010年全年(24本)定价:216元 优惠价:183.6元 2010年单本 定价:9元
2009年
2009年单本 定价:9元 2009年上半月(12本)定价:108元 优惠价:97.2元
2009年下半月(12本)定价:108元 优惠价:97.2元 2009年全年(24本)定价:216元 优惠价:183.6元
2008年
2008年全年征订8.5折优惠 79.6元  
2007年
07年第2期  
增刊
06年度增刊 定价:36元 现价:21.6元 05年度增刊 定价:36元 现价:28.8元
04年度增刊 2007年增刊Windows深入编程实例精解 定价:36元
合订本
06年合订本 定价:59元 现价:59元 05年合订本 定价:58元 现价:46.4元
04年合订本 定价:58元 现价:46.4元 03年合订本 定价:59元 现价:47.2元
02年合订本 定价:58元 现价:46.6元 01年合订本 定价:98元 现价:49元
     
Linux开发
 
使用Grid来对WPF页面进行布局排版(3)
 
我们可以通过定义Grid的ColumnDifinitions和RowDifinitions来实现对于表格的定义,然后根据Grid.Column和Grid.Row的对象来制定位置的方式实现布局。

  比如上面XAML文件中,

  <Grid >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="150"/>
<ColumnDefinition Width="5" />
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="35"/>
<RowDefinition Height="*"/>
<RowDefinition Height="35"/>
</Grid.RowDefinitions>

  就定义了一个三行三列的表格。

  ColumnDefinition和RowDefinition分别只需要定义Width和Height

  如果我们希望列的宽度或者行的高度是根据内部元素来决定的,我们可以定义为Auto,如果我们希望某列或者某行的宽度或者告诉是整体的其他部分,则可以定义成*,如果我们希望其中一项的长度是另外一项的5倍,则可以一个定义成*,一个定义成5*。

  我们看ColumnDefinition或者RowDefinition的Width或者Height属性的时候,我们可以看到这个属性不是int或者double类型,而是GridLength类型。

  下面一个简单的Grid定义来演示上面定义长度的几种写法:

<Window x:Class="WpfApplication1.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300">
<Grid >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="30"/>
<ColumnDefinition Width="auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="2*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Label Grid.Column="0" Grid.Row="0" Background="RosyBrown" ></Label>
<Label Grid.Column="1" Grid.Row="0" Background="SkyBlue" >1234567890</Label>
<Label Grid.Column="2" Grid.Row="0" Background="Red" ></Label>
<Label Grid.Column="0" Grid.Row="1" Background="SpringGreen" ></Label>
<Label Grid.Column="1" Grid.Row="1" Background="RoyalBlue" >abc</Label>
<Label Grid.Column="2" Grid.Row="1" Background="Violet" ></Label>
</Grid>
</Window>

  这个XAML文件的效果图如下:

使用Grid来对WPF页面进行布局排版

  图2

  此外,我们还可以使用Grid.ColumnSpan、Grid.RowSpan来实现一块布局跨多个表格项的情况。

  小结

  我个人觉得,把一个窗体或者页面用表格拆分,然后我们在每个表格项中增加我们规划好的控件,这种布局方案在没有比较好的美术细胞下,比较容易做出一个至少不难看的页面布局。

  基于以上的考虑,我觉得我们技术人员开发一些WPF窗体或者页面的时候,Grid控件应该是我们最常用到的。也应该是最应该掌握的控件。

(编辑:aniston)

 
友 情 链 接  

硬盘数据恢复

FPGA培训

软件开发网

电脑维修网

CCNP培训

嵌入式培训

视频会议专家网

华夏黑客同盟

263企业邮箱

网站优化

编程入门网

红客联盟

电脑维修

 
Copyright 2009, www.comprg.com.cn, All Rights Reserved
京ICP备06048724号  电话:010-82561614  MSN:Jizhenwei007@hotmail.com