对于一开始设计xaml界面的初学者,总是习惯性的拖拽控件进行布局,这样也许方便、简单、快捷,但偶尔会出现一些小错误,

当需要将控件进行很细微的挪动时也比较吃力。

这里,我个人建议用一些代码将xaml界面划分一下比较好,这样既使界面简单,有条理化,又使界面美观,易于对界面的各个部分

进行操作。

使用页面布局的两个定义是Grid.ColumnDefinitions和Grid.RowDefinitions。

下面演示一些实例(这些例子是本人在wpf上运行的):

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

界面生成的结果:

代码中的 * 表示余下的说有长度,如果有多个 * ,则将剩下的长度等分为多份。

如:

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

结果:

有了一个好的布局界面,就可以加入一些其它的控件在对应的空间内了:

   <Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
<RowDefinition Height="*" /> </Grid.RowDefinitions>
<Rectangle Grid.Row="" Grid.Column="" Fill="Red" ></Rectangle>
<Rectangle Grid.Row="" Grid.Column="" Fill="Blue" ></Rectangle>
<Rectangle Grid.Row="" Grid.Column="" Fill="Green"></Rectangle>
<Rectangle Grid.Row="" Grid.Column="" Fill="Chocolate" ></Rectangle>
</Grid>

结果:

如上面展示的一样,row与column都是从0开始算起的,这一小细节值得注意。

有了一个好的布局界面,对于接下来的控件的位置就更好确定了,也不用担心控件会在自己不小心的情况下变换位置。

这些尤其是对于向用户显示信息的时候尤为重要。

Xaml 页面布局学习的更多相关文章

  1. CSS3与页面布局学习总结(八)——浏览器兼容与前端性能优化

    一.浏览器兼容 1.1.概要 世界上没有任何一个浏览器是一样的,同样的代码在不一样的浏览器上运行就存在兼容性问题.不同浏览器其内核亦不尽相同,相同内核的版本不同,相同版本的内核浏览器品牌不一样,各种运 ...

  2. CSS3与页面布局学习总结(四)——页面布局大全

    一.负边距与浮动布局 1.1.负边距 所谓的负边距就是margin取负值的情况,如margin:-100px,margin:-100%.当一个元素与另一个元素margin取负值时将拉近距离.常见的功能 ...

  3. CSS3与页面布局学习笔记(四)——页面布局大全(负边距、双飞翼、多栏、弹性、流式、瀑布流、响应式布局)

    一.负边距与浮动布局 1.1.负边距 所谓的负边距就是margin取负值的情况,如margin:-100px,margin:-100%.当一个元素与另一个元素margin取负值时将拉近距离.常见的功能 ...

  4. CSS3与页面布局学习笔记(八)——浏览器兼容性问题与前端性能优化方案

    一.浏览器兼容 1.1.概要 世界上没有任何一个浏览器是一样的,同样的代码在不一样的浏览器上运行就存在兼容性问题.不同浏览器其内核亦不尽相同,相同内核的版本不同,相同版本的内核浏览器品牌不一样,各种运 ...

  5. CSS3与页面布局学习总结(四)——页面布局大全BFC、定位、浮动、7种垂直居中方法

    目录 一.BFC与IFC 1.1.BFC与IFC概要 1.2.如何产生BFC 1.3.BFC的作用与特点 二.定位 2.2.relative 2.3.absolute 2.4.fixed 2.5.z- ...

  6. (转载)CSS3与页面布局学习总结(三)——BFC、定位、浮动、7种垂直居中方法

    目录 一.BFC与IFC 1.1.BFC与IFC概要 1.2.如何产生BFC 1.3.BFC的作用与特点 二.定位 2.2.relative 2.3.absolute 2.4.fixed 2.5.z- ...

  7. CSS3与页面布局学习总结(七)——前端预处理技术(Less、Sass、CoffeeScript、TypeScript)

    CSS不像其它高级语言一样支持算术运算.变量.流程控制与面向对象特性,所以CSS样式较多时会引起一些问题,如修改复杂,冗余,某些别的语言很简单的功能实现不了等.而javascript则是一种半面向对象 ...

  8. CSS3与页面布局学习总结(四)——页面布局的多种方法

    一.负边距与浮动布局   1.1.负边距 所谓的负边距就是margin取负值的情况,如margin:-100px,margin:-100%.当一个元素与另一个元素margin取负值时将拉近距离.常见的 ...

  9. CSS3与页面布局学习总结——多种页面布局

    一.负边距与浮动布局 1.1.负边距 所谓负边距就是margin取负值的情况,如margin:-40px:margin-left:-100%.当一个元素与另一个元素margin取负值时将拉近距离.常见 ...

随机推荐

  1. ubuntu matplotlib 安装

    sudo apt-get install python-numpy //必须 sudo apt-get install python-matplotlib //必须

  2. centos7 显示中文乱码

    (1)# vi /etc/locale.conf LANG="en_US.UTF-8" (2)# vi /etc/sysconfig/i18n LANG="zh_CN.U ...

  3. poj 2513Colored Sticks

    http://poj.org/problem?id=2513 #include<cstdio> #include<cstdlib> #include<cstring> ...

  4. XML PULL模型

    student.xml <?xml version="1.0" encoding="utf-8"?> <stundets> <st ...

  5. 根据Hash分块存储文件

    迷你云默认存储方式是Hash存储模式,文件内容存储在本地硬盘,而非明文存储模式 一.下图大致说明了情况 <ignore_js_op> 二.工作原理 1.假设用户上传了A.doc文件,迷你云 ...

  6. android sudio 记录

    1. KVM is not installed on this machine (/dev/kvm is missing) 原文网址:http://askubuntu.com/questions/56 ...

  7. 《Linear Algebra and Its Application》-chaper1-行化简法解决线性方程组

    在实际生产生活中,需要我们解大量的线性方程组,例如是有探测.线性规划.电路等,这里我们便从理论角度建立一套解决线性方程组的体系. 线性方程组: 形如下面形式的方程组称为线性方程组. 回想起解决二元线性 ...

  8. 《SDN核心技术剖析和实战指南》3.3读书笔记

    这一节主要是介绍几种开源的SDN控制器. NOX/POX.最初的NOX混合了C++和Python两种编程语言,现在演变为两个版本.NOX版本主要面向Linux平台,利用C++开发,目标是提供快速的控制 ...

  9. linux下的type命令

    type命令用来显示指定命令的类型.一个命令的类型可以是如下几种: alias 别名 keyword 关键字,Shell保留字 function 函数,Shell函数 builtin 内建命令,She ...

  10. redis在Java web项目的简单应用(转载)

    看到一篇关于redis和spring集成的文章,实际测试后,可以.转载以备用.谢谢 亲昵YY! html,body { font-size: 15px } body { font-family: He ...