首页 > 嵌入式软件 > windows phone

本文引用地址: http://www.21ic.com/embed/software/windowsphone/201605/41264.html

在开如之前,我想更正一个小问题,之前我在第一篇文章中说,Visual Studio Express for Windows Phone的中文版没有简体中文,那是因为我是在英文主页上下载的,语言选择列表中只有一个中文,但是繁体的,后来,我发现Windwos Phone SDK是有简体中文版的,顺便我也给出下载地址。
http://www.microsoft.com/downloads/zh-cn/details.aspx?FamilyID=0a373422-6680-46a7-89e1-e9a468a14259
可以在线安装,如果你的网速不给力的话,可以下载ISO镜像本地安装。
----------------------------------

上一篇文章中,我们了解了WP应用程序的生命周期和各个事件的触发情况,今天,我们一起来探讨一下框架和页面。
理论枯躁的东西就不讲了,MSDN上都有的,具体一点,我们随便新建一个WP应用程序项目,接着打开App.xaml.cs文件瞧瞧,看看里面有没有“新大陆”?

1、一个App类,从
Application派生,这跟Silverlight中是一样的,当然,如果你对Silerlight不熟悉也不要紧,我简单吹一下。
我想各位玩过C#的,不管怎么说也应该玩过Windows窗体应用程序吧,对,就是我们常说的WinForm项目,在WindowsForm项目里面,有一个Program.cs之类的文件,程序的入口点就在里面定义,在Main的最后,VS默认生成的代码中有这么一行:Application.Run(...);
所以,这个Application和那个Application的意义是一样,专门负责整个应用程序范围的各种事务的协调。
2、我们会注意到App里面有一个公共属性RootFrame,这就是主框架,一个WP应用程序只有一个主框架。
 
 
 
 
3、主框架下面是页,主框架中可以包含1个或N多个页面。
4、页面这个概念很好理解,就像我们平时看到的一个窗体,只不过在Silverlight里面叫页,所以,我们也可以联想起Web页面。在Android里面叫一个Activity,其实所指的东东是一样的,只是叫法不同罢了。下图所示为一个页。
 
 
好的,下面来看一下一个页面是如何构成的。
先来看看页面的XAML声明部分。
 
[html]
  1. <phone:PhoneApplicationPage   
  2.     x:Class="phoneApp.MainPage"  
  3.     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"  
  4.     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"  
  5.     xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"  
  6.     xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"  
  7.     xmlns:d="http://schemas.microsoft.com/expression/blend/2008"  
  8.     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"  
  9.     mc:Ignorable="d" d:DesignWidth="480" d:DesignHeight="768"  
  10.     FontFamily="{StaticResource PhoneFontFamilyNormal}"  
  11.     FontSize="{StaticResource PhoneFontSizeNormal}"  
  12.     Foreground="{StaticResource PhoneForegroundBrush}"  
  13.     SupportedOrientations="Portrait" Orientation="Portrait"  
  14.     shell:SystemTray.IsVisible="True">  
  15.   
  16.     ……………………  

我们看到,每一个页面都是PhoneApplicationPage的子类,它是继承自Silverlight中的Page类。
因为程序是面向WP手机的,所以注意要使用PhoneApplicationPage而不是用Page类,这样可以避免出问题。Class属性就是我们这个页面类的类名。
d可以理解为是设计时的状态,d:DesignWidth="480"就是说这个宽度和高度只是在设计时有效,也就是我们在设计器中看到的大小,并不意味着真正运行起来是这个值,有可能会随着手机屏幕的不同而自动调整,所以我们不应该刻意地设置页面的宽度和高度,以免被固定了,不能自动调整。
mc是什么呢?从语义上翻译是,是标记兼容性相关的内容,其中我们看到一句:mc:Ignorable="d",正如上面所说,d:DesignWidth是设计时的,所以,Ignorable="d"就是告诉编译器在实际运行时,忽略设计时设置的值。
SupportedOrientations用于设置页面支持的方向,如果我们希望在手机屏幕被用户旋转后,程序能够自动跟着调整,就相应地修改该属性。
Orientation属性就是用来设置当前页面的默认方向,是纵向的还是横向的。
下面,一起来做个练习,把SupportedOrientations改为PortraitOrLandscape,再把Orientation改为除None以外的其它值,然后运行,把手机向不同方向旋转,看看怎么样?
 
 
 
 
 
 
这个大家多改改,多试几次就明白了,挺有意思的。
还有一个,shell:SystemTray.IsVisible="True"用于设置是否隐藏系统托盘,我们把它设置为True时,运行程序,把鼠标移到页面顶部点击一下,我们就会看到系统托盘了,如显示当前手机信号强度,电池剩余量等信息。
换一批

延伸阅读

[疯狂史] 电子工程师的八种级别

电子工程师的八种级别

当你60岁时呢?对于那些渴望成为工程师的工程师来说,最好的职业生涯出路是什么呢?开个玩笑,如果我告诉你,工程师可分为八种级别,你会怎么想呢?......

关键字:电子工程师

[真心话] 身价816亿美元!扎克伯格有望超越巴菲特成全球第三富

身价816亿美元!扎克伯格有望超越巴菲特成全球第三富

Facebook股价今日升至202美元的历史新高。这让Facebook创始人扎克伯格的身价达到了816亿美元,有望成为全球第三富有的人。目前,扎克伯格的身价与巴菲特之间的差距已缩小至2900万美元。Facebook创始人扎克伯格身价周......

关键字:扎克伯格 巴菲特

[疯狂史] 为什么电脑第一个磁盘永远是C盘?

为什么电脑第一个磁盘永远是C盘?

刚有个人电脑时,上就运行着著名的MS-Dos和windows系统,而第一个磁盘(系统盘)总是以C盘开始,但是为什么呢?......

关键字:电脑 磁盘 C盘

[新鲜事] 阿根廷队告别俄罗斯世界杯,罗永浩:梅西巅峰期已过

阿根廷队告别俄罗斯世界杯,罗永浩:梅西巅峰期已过

6月30日晚,俄罗斯世界杯的赛场上上演16强焦点之战,阿根廷对法国。面对拥有身高、年龄、速度等优势,并坚持打高吊、防反的法国队,阿根廷队显得没有什么办法。虽然两次被幸运女神眷顾并一度以2:1领先,但法国队最......

关键字:阿根廷 世界杯

[新鲜事] 这家被指抄袭谷歌的红芯浏览器承认基于开源架构,仍称“有创新”

这家被指抄袭谷歌的红芯浏览器承认基于开源架构,仍称“有创新”

深陷“造假”风波的国产浏览器品牌红芯,再度发声。8月16日晚,红芯时代(北京)科技有限公司发布声明称:红芯浏览器内核是基于通用的浏览器内核架构(即Chromium开源项目,但不是Chrome浏览器)的基础上进行......

关键字:浏览器 谷歌 红芯浏览器

[新鲜事] 波士顿动力正在制造令人害怕的“机器狗军队”,明年出货1千台SpotMini机器人

波士顿动力正在制造令人害怕的“机器狗军队”,明年出货1千台SpotMini机器人

波士顿动力公司正在制造令人害怕的“机器狗军队”!目前,该公司表示,到2019年7月,将实现每年量产1000个紧凑型SpotMini机器人。SpotMini是公司研制多款机器狗中体型最小的,身高两英尺9英寸,重量66磅......

关键字:波士顿动力 机器人

[趣科技] 可以为手机充电的牛仔裤

可以为手机充电的牛仔裤

但是如果有一条神奇的既可以容纳你的手机,同时还可以给你的手机充电,让你出门在外,从此无忧,你会去购买这款神奇的牛仔裤吗?......

关键字:充电
条评论

我 要 评 论

网友评论

大家都爱看

  • 扇出型晶圆级封装的优势和挑战!

    我们有能力创造一些能保持前代性能并且更好更小的电子设备,例如今天的可穿戴设备、智能手机或平板电脑,这是由于很多因素超过摩尔定律而快速发展,从而能够从底层的嵌入组件发展到今天把它们封…

    2018-03-29
  • Xilinx推出革命性的新型自适应计算产品

    自适应和智能计算的全球领先企业赛灵思公司(Xilinx, Inc.,(NASDAQ:XLNX)),近日宣布推出一款超越FPGA功能的突破性新型产品,名为ACAP(Adaptive Compute Acceleration Platform,自适应计算加速…

    2018-03-20
  • 赛普拉斯为树莓派3 B+ IoT单板计算机提供强大稳定的无

    先进嵌入式系统解决方案的领导者赛普拉斯(纳斯达克代码:CY)近日宣布其Wi-Fi&#174;和蓝牙&#174;combo解决方案为全新的树莓派 3 B+(Raspberry Pi 3Model B+)IoT单板计算机提供强大稳定的无线连接…

    2018-03-20
  • 观看直播领红包,SEED-A10加速卡助力人工智能

    随着云服务器、云计算的发展,大家对硬件加速的需求越来越多,但是随着设备功耗的上升、性能需求越来越高,常规加速设备以及开始不能满足需求,因此FPGA逐渐在硬件加速中找到了自己的位置,而艾…

    2018-03-19
  • 特朗普:博通不得以任何形式收购高通

    白宫周一(3月12日)晚发出声明,川普(特朗普)总统出于“国家安全”考量、禁止新加坡博通公司(Broadcom)收购美国高通公司(Qualcomm)。

    2018-03-14