Windows Phone 开发学习笔记(五) Hello Windows Phone之虎头蛇尾

在上一篇中,只查了下

x:Class="HelloWindowsPhone.MainPage"

的解释,初步了解了XAML和CS文件之间的关系。而在MainPage.xaml中,还有很多行语句没有分析

xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d" d:DesignWidth="480" d:DesignHeight="768" 
FontFamily="{StaticResource PhoneFontFamilyNormal}"
FontSize="{StaticResource PhoneFontSizeNormal}"
Foreground="{StaticResource PhoneForegroundBrush}"
SupportedOrientations="Portrait" Orientation="Portrait"
shell:SystemTray.IsVisible="True"

接下来就研究下这段代码,依然是依靠MSDN。

首先查找xmlns的作用:

http://msdn.microsoft.com/zh-cn/library/ms752059.aspx#xaml_root_elements_and_xaml_namespaces

从文档中可以知道,xmlns这个属性其实就是XML namespace的缩写,用来指明当前XAML文件的命名空间,类似CS文件中的using。每个XAML文件的根元素必须声明xmlns属性。由于是开发Windows Phone应用,所以xmlns:phone和xmlns:shell里的类型均与Microsoft.Phone有关。通过文档的解释,前六行程序就基本理解了。接着看第7行语句。

mc:Ignorable="d" d:DesignWidth="480" d:DesignHeight="768"

从字面上就能看出,mc:Ignorable是用来设置忽略属性的。它通知XAML处理器(例如之前提到的,main.cs中的Load函数)可以忽略哪些属性。这条语句使得在设计时,页面分辨率被指定为768*480。而当XAML处理器读入XAML文件进行解析时,该分辨率设置会被忽略。

而接下来的三行语句

FontFamily="{StaticResource PhoneFontFamilyNormal}"
FontSize="{StaticResource PhoneFontSizeNormal}"
Foreground="{StaticResource PhoneForegroundBrush}

设置字体,很容易理解,但是其中的“{}”有些门道,它是用来声明标记扩展的。在设置页面的属性值时,有的只需赋给普通的字符串,但有的则需赋给特殊的值(例如某种资源或已存在的对象),这时就需要标记扩展来实现。“{}”用来通知XAML文件处理器,不要把里面的内容按普通的字符串进行处理,要按照标记扩展的规定来处理。StaticResource就是为属性提供静态资源的标记扩展。由于Windows Phone已经内置很多种样式,在应用是可以很方便的调用,而且还可以自定义各种资源。

SupportedOrientations="Portrait" Orientation="Portrait"

这一行设置页面方向。页面默认只支持纵向显示,如果想实现纵横方向的自由显示,可以在这里更改。

而最后一行

shell:SystemTray.IsVisible="True"

则是设置程序在系统栏(也称状态栏)的可见性。

至此,Hello Windows Phone中的MainPage全部分析完成,对Windows Phone中的Page也有些了解,但对整个应用的周期还是不太懂,需要继续研究。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值