为什么叫室内装修呢?呵呵,其实说的是布局,具体些嘛,就是在一个页面中,你如何去摆放你的控件,如何管理它们,你说,像不像我们刚搬进新住所,要“装修”一番?买一套什么样的茶几和杯具(我说的“杯具”指的是原意,不要理解错了),或者沙发什么的,该怎么放,摆在哪里好看,其实,我们做界面设计也是差不多这个道理。
相信我们下过象棋就知道,棋盘上有横向的,纵向的很多网格线,而棋子就是参照这些网格线来放置的,对,在WP页面布局中我们把这样的布局称为网格布局,对应的控件为Grid。
千万别小看这个Grid控件,它可是非常好用的,而且也比较灵活,对的,当我们创建一个新页面时,VS为我们生生的XAML中,正是使用了Grid控件进行布局的。
既然是网格了,肯定会有行和列的,而我们的控件就是按需要放到由这些行和列共同产生的单元格中,就是我们在做网页排版时用到的table标签,应该说是非常类似的。
下面我们一起动手做个小练习,通过这个练习,我们可以从一种更直观的角度去了解Grid控件的用法。
1、启动VS,新建一个WP应用程序,不用我多说了,都会了。
2、删除页面中的根Grid,整个删除。如下图所示。
3、然后,替换为以下XAML代码。
这样我们就定义了一个两行两列的网格布局,也就是整个页面被划分为4个方块。
先简单说一下行的高,列的宽的表示方法,如果你用过WPF,你应该很清楚了。
(1)可以用数值,double类型,如120.667,这个数字与屏幕分辨率无关,运行运行库会自行调整;
(2)*:这个星号是什么意思呢?就像上面的例子,我都用了*,这么说是说不清楚的,我举个例子吧。
比如,我把一个网格分为3行,而每一行的高度都是*,则表示三个行的高度是平均分配的,都占整个网格高度的1/3.
如果我第一行的高为2*,第二行的高为*,第三行的高为3*,那么又该如何分配呢?
先别急,把上面的代码改一下,我们就可以直观地看到效果了。为了方便观察,我把ShowGridLines的值改为True,这样网格线就会显示。
好,现在我们看看设计视图上面显示的结果。
其实上面三行的高分别为2*,1*和3*,1可以省略,它的意思就是把整个网格的高度平均分成2 + 1 + 3 = 6份,而2*就占其中2份,1*就占其中1份,3*就占其中3份,也就是说,它们分别占总高度的2/6,1/6,3/6.
怎么样,找到规律了吗?
再来一例。
这时候,我们再看看设计视图有啥变化?
上面的示例是把整个容器的高度平均分为 3 + 7 = 10 份,而第一行的高度占总高度的3/10,第二行的高度占总高度的7/10.
现在明白了一些了没?
再看看下面的例子:
同理,第一行固定86,这是一个绝对的值,然后呢,把剩下的高度,就是除了86之外的,平均分为 5 + 3 = 8 份,第二行占了剩下的高度的5/8,第三行占了剩下的高度的3/8.
(3)Auto,不用多解释,从单词的含义就知道了,就是根内容自动调整。
列的定义与行是相类似的,只不过列定义宽度,行定义高度而已。
如果以上三种值同时出现呢?原理是一样的,自己思考一下吧,不懂的就多写代码观察。
那么,我们如何把内容放到对应的单元格内呢?Grid的行序号和列序号是从0开始的,如第一列就是0,第二行就是1等,具体怎么操作呢?
在声明其内容时,通过附加属性来确定内容应放在哪个单元格,如下面例子。
运行效果如下:
好了,网格布局就吹到这里,下面接着看另一个较简单的布局——StackPanel,嗯,它是一个面板,它的子内容的布局非常简单,就两种方式:横向和纵向,它是沿直线分布的,要么水平,要么垂直,反正是线性分布,就类似于我们说的数据结构中的栈队列,先进后出。
例一,水平布局。
效果如下:
例二:垂直布局。
运行效果如下:
(图6)运行效果如下:
最后,我们来看看还有一种通过绝对定位的布局控件——Canvas。
它就像我们的二维坐标系,但与我们在平面几何中不同的是,Canvas的原点在左上角,相信写过可视化程序的朋友都知道了。
要注意的是,Canvas不知道具体要为哪些子内容设置坐标,所以,它的Top和Left值视具体情况而定,因此这两个属性都是附加属性,也就是它附加在放置在Canvas中的子元素要设置的具本位置而使用,所以每个子元素的定位都通过附加的Canvas.Top和Canvas.Left来设置。
还有的是,ZIndex是用于设置子元素的顺序,从0开始,默认为0,值越大,它越在顶层,比如上面的例子,我们发现,后面添加的三角形把前一个矩形挡住了,那如何让矩形在其它图形之上呢?对,把ZIndex设置一个较大的值就行了,如:
分享到:
相关推荐
- **第1章:Windows Phone 7应用开发简介** - 介绍Windows Phone 7的硬件特性及软件开发工具。 - 创建简单的应用程序并部署它们。 - 应用程序通过Windows Phone Marketplace进行分发。 - 包括了硬件检查、开发...
3. **Silverlight**:Windows Phone 7时代的开发主要基于Silverlight,它是一种用于创建富媒体和交互式用户体验的技术,类似Adobe Flash,但专为Windows Phone设计。 4. **XAML**:XAML是用于定义用户界面的标记...
- **平台背景**:Windows Phone是由微软公司推出的智能手机操作系统,旨在为用户提供一个高效、流畅且与众不同的移动体验。 - **发展历程**:从最初的Windows Phone 7到后来的Windows Phone 8,以及最后的Windows 10...
2. **导航服务**:Windows Phone的导航服务允许在各个页面间跳转,源码可能展示了如何使用Frame导航和如何传递参数。 3. **本地存储**:了解如何利用IsolatedStorage进行数据持久化,存储用户设置或应用数据。 4. ...
开发Windows Phone 7应用程序主要使用的是Visual Studio集成开发环境(IDE),配合C#编程语言和Silverlight技术。Silverlight是一种用于构建富媒体和交互式用户体验的框架,对于WP7应用开发来说,它提供了丰富的图形...
2. **界面元素编程**:Windows Phone应用中的界面元素包括但不限于按钮、滑块、文本框等。这些元素需要编程实现其功能,例如响应用户的触摸事件、显示动态数据等。通过学习这部分内容,你可以了解如何在代码后面编写...
《Windows Phone程序开发高级设计 第3版》是针对Windows Phone平台深入探讨应用程序开发的专业书籍,主要面向有经验的开发者,旨在提升他们在Windows Phone应用开发领域的技能。本版本为英文版,适合那些希望拓宽...
- **用户界面**:Windows Phone 7 引入了动态磁贴(Live Tiles)的概念,这些磁贴可以显示实时更新的信息,如未读邮件数量、天气变化等。 - **硬件要求**:为了确保用户体验的一致性和流畅性,Windows Phone 7 对...
在Windows Phone平台上,开发应用程序通常涉及使用Microsoft的Silverlight技术和XAML(Extensible Application Markup Language)来构建用户界面。这个“windows phone开发源代码18-24”的压缩包很可能是包含了一...
本书《Essential Windows Phone 7.5: Application Development with Silverlight》是微软.NET开发系列中的一本优秀著作,旨在为专业开发者提供全面且实用的Windows Phone 7.5应用开发指南。书中深入浅出地介绍了如何...
《Windows Phone开发手册》是针对微软移动平台开发者的重要参考资料,尤其对那些想要深入理解并实践Windows Phone应用开发的程序员来说,这份资料具有很高的价值。Windows Phone操作系统,作为微软在移动领域的尝试...
Windows Phone开发是一个专门针对微软移动操作系统的应用程序创建过程。在这一领域,开发者经常需要利用各种类库和案例来提升应用的功能和用户体验。本文将深入探讨Windows Phone开发中的关键知识点,包括类库的使用...
Windows Phone开发是一个面向微软移动操作系统的应用程序创建过程。这个平台为开发者提供了丰富的工具和技术,以构建功能丰富的、具有吸引力的应用程序。"Windows Phone开发课件"包含了一系列的教程、文档和代码示例...
5. 拍照与相册选择:Windows Phone提供了`CameraCaptureTask`和`PhotoChooserTask`,用于拍照和选择相册中的图片。完成后,可以通过`Result`属性获取图片的URI。 ```csharp CameraCaptureTask cameraTask = new ...
- **概述**:Windows Phone 是微软推出的一款智能手机操作系统,它整合了微软旗下的 Xbox Live 游戏、Zune 音乐等功能,提供了独特的用户体验。自 2010 年发布以来,Windows Phone 的目标市场主要是针对 Android 和 ...
在进入Windows Phone 7开发的世界之前,首先需要搭建一个合适的开发环境。Windows Phone 7作为一个由微软推出的全新智能设备平台,吸引着越来越多的开发者投身其中。这篇文章将详细讲解如何搭建Windows Phone 7的...
- **传感器集成**:Windows Phone 7集成了多种传感器,如加速度计、陀螺仪等,这些传感器可以用来增强应用程序的功能。本书提供了如何利用这些传感器来提高应用程序的互动性和实用性。 - **应用架构**:良好的应用...
2012年6月21日,微软正式发布Windows Phone 8,采用和Windows 8相同的Windows NT内核,同时也针对市场的Windows Phone 7.5发布Windows Phone 7.8。现有Windows Phone 7手机都将无法升级至Windows Phone 8。 2014年3...
下面我们将深入探讨Windows Phone 7开发环境、Vibration Composer的工作原理以及如何在实际项目中实现振动功能。 首先,Windows Phone 7的开发环境主要包括Visual Studio和Expression Blend。开发者通常使用Visual ...