欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Windows Phone笔记(1)hello,Windows Phone

程序员文章站 2023-08-23 11:49:00
关于windows phone   windows phone 是微软在于2010年10发布的一款手机操作,同时将谷歌的android和苹果的ios作为主要竞争对手。2011年2月与诺基亚达成全球战...

关于windows phone
  windows phone 是微软在于2010年10发布的一款手机操作,同时将谷歌的android和苹果的ios作为主要竞争对手。2011年2月与诺基亚达成全球战略同盟并深度合作共同研发,建立其庞大的生态系统。windows phone 7系统采用了全新的架构,所以并不兼容以往windows mobile系统的应用程序,这也是由于wm系统的历史包袱过于沉重的原因。移动终端将来不仅仅只是作为一个通讯工具,而去也会变成强大的云计算终端之一。windows phone使用的独特的metro设计风格,为用户带来了全新的体验,同时将xbox live服务整合到windows phone中,游戏应用也将会是windows phone的一个亮点,微软也将随着微软不予余力的和诺基亚等各大手机厂商的加入,可以预见,windows phone能够在将来的智能手机操作系统的市场上占有重要的位置,同时windows phone在中国尚处于初始阶段,对于广大开发者而言是一个很好的切入点,前瞻性的投入windows phone开发的学习,也是一次很好的个人投资。

  

1.系统架构
  作为开发者,我们首先从windows phone的开发架构入手,下面是windows phone的系统结构图:

  Windows Phone笔记(1)hello,Windows Phone


 

从图中可以windows phone的应用开发支持silverlight和xna这两个平台。silverlight框架通常用于开发应用程序和工具和一些简单的小游戏,xna框架主要用来编写高性能的游戏,包括2d和3d,前面也介绍过,游戏开发将是windows phone开发中的一个亮点。同时云服务和windows azure也是windows phone开发中的重要组成部分。同时于微软以往的手机操作系统不同,windows phone已经对手机硬件规格做了严格的规定,保持了应用和windows phone体验的一致性。

  

2.开发环境的安装

  windows phone的软件开发工具包(windows phone 7.0 和 windows phone 7.5 设备开发应用程序和游戏所需的全部工具&sdk)是完全免费的但是只支持在windows vista和windows 7中安装。具体安装过程比较简单,直接从msdn下载按照提示安装即可(如果你已经安装了visual studio 2010,请先将visual studio 2010升级到sp1版本才能继续安装windows phone sdk),使用email注册一个windows live账户即可免费使用。

 

3.第一个windows phone示例程序
  好了废话不多说了,那么我们来开始我们的第一个windows phone应用,hello windows phone!

打开vs,新建项目 ,在已安装的模板中选择c#,然后选择silverlight for windows phone,在右侧选择windows phone 应用程序,选择路径,输入项目名称hellowindownsphone。点击确定,ok,项目创建完成。

  让我们来看看创建好的项目结构:

  Windows Phone笔记(1)hello,Windows Phone


 

首先我们先看properties(属性)文件夹下3个文件,在我们这个示例中并不需要理会这些文件,但是在实际开发一个应用时,这些文件就显得非常重要了。先打开wmappmanifest.xml文件:
 
 1 <?xml version="1.0" encoding="utf-8"?>
 2 <deployment xmlns="http://schemas.microsoft.com/windowsphone/2009/deployment"

appplatformversion="7.1">
 3   <app xmlns="" productid="{1de7cc9f-9cf1-41ec-a309-7488dd2b4d3c}" title="hellowindowsphone" runtimetype="silverlight" version="1.0.0.0" genre="apps.normal"  author="hellowindowsphone author" description="sample description" publisher="hellowindowsphone">
 4     <iconpath isrelative="true" isresource="false">applicationicon.png</iconpath>
 5     <capabilities>
 6       <capability name="id_cap_gamerservices"/>
 7       <capability name="id_cap_identity_device"/>
 8       <capability name="id_cap_identity_user"/>
 9       <capability name="id_cap_location"/>
10       <capability name="id_cap_medialib"/>
11       <capability name="id_cap_microphone"/>
12       <capability name="id_cap_networking"/>
13       <capability name="id_cap_phonedialer"/>
14       <capability name="id_cap_push_notification"/>
15       <capability name="id_cap_sensors"/>
16       <capability name="id_cap_webbrowsercomponent"/>
17       <capability name="id_cap_isv_camera"/>
18       <capability name="id_cap_contacts"/>
19       <capability name="id_cap_appointments"/>
20     </capabilities>
21     <tasks>
22       <defaulttask  name ="_default" navigationpage="mainpage.xaml"/>
23     </tasks>
24     <tokens>
25       <primarytoken tokenid="hellowindowsphonetoken" taskname="_default">
26         <templatetype5>
27           <backgroundimageuri isrelative="true" isresource="false">background.png</backgroundimageuri>
28           <count>0</count>
29           <title>hellowindowsphone</title>
30         </templatetype5>
31       </primarytoken>
32     </tokens>
33   </app>
34 </deployment>

 <title>hello windows phone</title>标签中的名称是向用户显示已经安装的应用程序列表中的程序名称applicationicon.png和background.png是在手机应用程序列表中显示的图标,可以*替换这些图标,但是不能够改变图标的文件名称。splashscreenimage.jpg文件是程序启动时显示的图片。
  继续查看项目的文档结构,我们发现两对最重要的文件app.xaml和app.xaml.cs以及mainpage.xaml和mainpage.xaml.cs,有个silverlight和wpf开发经验的开发者知道xaml中文名称为可扩展应用程序标记语言是微软为应用程序用户界面而创建的一种新的描述性语言,基于xml。app.xaml.cs和mainpage.xaml.cs从文件的命名上我们可以看出这两个c#代码文件时于这两个xaml文件相关的“代码隐藏文件",有过.net开发经验的开发者对这种结构应该不会陌生。
  下面简单介绍这几个文件的作用:
app.xaml通常用来存储整个应用程序所使用的资源,这些资源包括配色方案、渐变画刷、样式等等。app.xaml和app.xaml.cs文件实际上定义了同一个app类的两个部分,当程序运行时,app类创建一个类型为phoneapplicationframe的对象并将该对象设置为自身的rootvisual属性,该框架(frame)的宽度为480像素,高为800像素,占据了整个手机界面phoneapplicationframe对象类似于网游,用来导航到mainpage对象。
mainpage类是我们编写程序的主战场,该类定义于mainpage.xaml和mainpage.xaml.cs文件中。
  接下来,为了更直观的了解windows phone 开发我们修改mainpage.maml文件在文件中增加一个textblock元素,显示“hello,windows phone”文本,修改如下:
 
 1 <phone:phoneapplicationpage

  2     x:class="hellowindowsphone.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     <!--layoutroot 是包含所有页面内容的根网格-->
17     <grid x:name="layoutroot" background="transparent">
18         <grid.rowdefinitions>
19             <rowdefinition height="auto"/>
20             <rowdefinition height="*"/>
21         </grid.rowdefinitions>
22
23         <!--titlepanel 包含应用程序的名称和页标题-->
24         <stackpanel x:name="titlepanel" grid.row="0" margin="12,17,0,28">
25             <textblock x:name="applicationtitle" text="hellowindowsphone" style="{staticresource phonetextnormalstyle}"/>
26             <textblock x:name="pagetitle" text="mainpage" margin="9,-7,0,0" style="{staticresource phonetexttitle1style}"/>
27         </stackpanel>
28
29         <!--contentpanel - 在此处放置其他内容-->
30         <grid x:name="contentpanel" grid.row="1" margin="12,0,12,0">
31             <textblock fontsize="36" text="hello windows phone!" verticalalignment="center" horizontalalignment="center" foreground="red"/>
32         </grid>
33     </grid>
34
35 </phone:phoneapplicationpage>

 按f5运行程序,模拟器显示效果如下:

  Windows Phone笔记(1)hello,Windows Phone

 

 

好了那么这就是我们学习windows phone开发的第一个helloworld程序了,通过这个示例让我们对windows phone 开发有了一个初步的了解,为后续的学习做好准备。

 

摘自  晴天猪の博客