当前位置: 首页 > 科技观察

WindowsPhone开发(四):Frameworks和Pages

时间:2023-03-14 13:58:01 科技观察

开篇之前,我想纠正一个小问题。我在第一篇文章中说过,VisualStudioExpressforWindowsPhone中文版没有简体中文。是因为我是从英文主页下载的,语言选择列表里面只有一个中文,但是是繁体中文。后来发现有WindwosPhoneSDK的简体中文版,也顺便给了下载地址。http://www.microsoft.com/downloads/zh-cn/details.aspx?FamilyID=0a373422-6680-46a7-89e1-e9a468a14259可以在线安装,如果你的网速不够,可以下载ISO本地安装的图像。-----------------------------------上一篇我们了解了生命周期和触发每个事件,今天,让我们一起讨论框架和页面。无聊的理论性的东西就不说了,MSDN上都有,具体来说,我们新建一个WP应用项目,然后打开App.xaml.cs文件,看看里面有没有“NewWorld”它?1.一个App类,派生自Application,和Silverlight中一样。当然,不熟悉Silerlight也没关系,我就简单吹一下。我想玩过C#的人无论如何都应该玩过WindowsForms应用程序。没错,就是我们常说的WinForm项目。在WindowsForm项目中,有一个Program.cs这样的文件,程序的入口点就定义在里面。在Main的***中,VS默认生成的代码中有这么一行:Application.Run(...);因此,本Application与那个Application具有相同的含义,负责整个应用范围内各种事务的协调。2、我们会注意到App中有一个公共属性RootFrame,就是主框架。一个WP应用程序只有一个主框架。3、主框架下面是页面,主框架可以包含1个或N个以上的页面。4、页面的概念很好理解,就像我们平时看到的窗体一样,但是在Silverlight中叫做页面,所以我们也可以认为是网页。在Android中,它被称为Activity。其实指的是一样的,只是叫法不同罢了。下图显示了一个页面。好了,我们来看看一个页面是如何构成的。我们先看一下页面的XAML声明部分。…………………...我们可以看到每个页面都是PhoneApplicationPage的子类,PhoneApplicationPage是继承自Silverlight中的Page类。由于程序是面向WP手机的,所以要注意使用PhoneApplicationPage而不是Page类,以免出现问题。Class属性是我们页面类的类名。有两个命名空间我们要注意:xmlns:d="http://schemas.microsoft.com/expression/blend/2008"xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"d可以理解为设计时的状态,d:DesignWidth="480"表示宽高只在设计时有效,也就是我们在设计器中看到的尺寸,并不代表它实际上在运行时看起来是这个值,而且可能会随着手机屏幕的不同而自动调整,所以我们不要刻意去设置页面的宽高,以免固定不变,无法自动调整。什么是mc语义翻译就是和标记兼容性相关的内容,其中我们看到一句话:mc:Ignorable="d",上面说了d:DesignWidth是在设计时设计的,所以,Ignorable="d”是告诉编译器在实际运行时忽略设计时设置的值。SupportedOrientations用于设置页面支持的方向。如果我们想让程序在用户旋转手机屏幕后自动调整,我们需要相应地修改这个属性。Orientation属性用于设置当前页面的默认方向,是纵向还是横向。接下来我们一起做个练习,把SupportedOrientations改成PortraitOrLandscape,然后把Orientation改成None以外的其他值,然后运行,把手机往不同的方向旋转,看看效果如何?这个很有意思,大家多修改多试几次。还有一个,shell:SystemTray.IsVisible="True"用来设置是否隐藏系统托盘。当我们设置为True,运行程序,将鼠标移动到页面顶部点击,我们就会看到系统托盘。比如显示当前手机信号强度、剩余电量等信息。