上2篇文章已经说明了WP7的软件生命周期,当然我们可能记得不太清楚,没关系,时间能帮我们记住,只要在以后开过程中,多多接触,就行了,现在觉得做一般水平程序员不难,只要熟悉类库API就行了,熟能生巧,当然如果你要成为高级程序员,那就不只是熟悉API那么简单的了,好了,我们开发吧。
一:准备好开发环境,win7+VS2010sp1+wp7 sdk7.1
注释:操作系统是必须是WIN7的,当然XP上安装VS2010 Express for window phone 也是有的。可参考:http://www.iwp7.com/archives/3882
我这里用的是WP7 SDK7.1RC版,最新的,增加了500多项新特性。下载地址是:http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=27153
我用的是旗舰版本的VS2010,因为它自带了很多东西提供开发使用,不单是WP7支持,很遗憾的是我在安装VS2O10后再安装WP7 SDK 7.1RC 竟然报不能安装,它需要的是SP1支持,所以呢,我就更新了开发工具为VS2010SP1,大家也麻烦点吧。地址是:http://www.microsoft.com/download/en/details.aspx?id=23691
介绍完开发工具后,我们就来开发吧,其实安装时需要很长时间的。
二:File-->New Project,我们会看到许多项目模板,这里我们先选择第一项window phone application吧。
1:window phone application:标准的单页面WP7应用程序。
2:window phone Databound application:多页面WP7应用程序。它提供了一个Title 和Summary --(标题栏、备注栏),然后在以LIST列表方式呈现出来.
3:window phone class library :提供使用的类库,这是作为用户封装类库项5目使用的。
4:Windows Phone Panorama Application:全景图的应用程序开发模板,针对屏幕比较小但要显示大内容的时用到,我们可以拖动画面来查看全部内容。
5:Windows Phone Pivot Application:把Application 界面当成圆形转轮,在里面的父窗口都是以一个轴为中心点,不管用户怎么选择都会轮换切换。类似于Tab.
6:其它的比如播放器使用的就不一一介绍了。
三:认识项目。
这里我们一一说明:
1:App
App.xaml:这里主要存放一些全局使用的资源,比如样式Style资源等。也定义了软件生命周期的各个事件,
<shell:PhoneApplicationService
Launching="Application_Launching" Closing="Application_Closing"
Activated="Application_Activated" Deactivated="Application_Deactivated"/>
App.xaml.cs:这里主要是软件生命周期中事件实现,已经保存全局变量或者数据等(比如:登陆用户账号,密码等),同时也包括了软件顶级容器:PhoneApplicationFrame
以上可以看出App主要是保存或者是定义全局的地方,你写程序的时候可以考虑需要保存全局的。:
2:MainPage
MainPage.xaml:主要是定义软件的UI界面,是个“分部类”,是继承phone:PhoneApplicationPage 页面的。在这里我们一般是书写软件的UI,当然也可以保存Style资源,动画资源,但这个是局部的,在本界面有效。
MainPage.xaml.cs:这个内置类,与MainPage.xaml合并为一个类,这里主要是书写C#,VB代码的地方,以及处理事件,播放动画等等。
3:ApplicationIcon.png(应用程序ICON),Background.png(程序ICon背景),SplashScreenImage.jpg(加载欢迎页面图)
4:AppManifest.xml:
应用列表,会打包并发布,文件作用是把我们需要布署和发布的所有文件列表列出来。
5:AssemblyInfo.cs:程序集中包含的软件名称、语言版本以及公司信息等。
6:WMAppManifest.xml:包含了Wp7 的一些特殊属性,定义可用能力,让它支持比如游戏服务、本地化、网络链接、浏览器等功能; 默认启动界面任务类;还可以定义应用程序的图片等.
<Capabilities>
<Capability Name="ID_CAP_GAMERSERVICES"/>
<Capability Name="ID_CAP_IDENTITY_DEVICE"/>
<Capability Name="ID_CAP_IDENTITY_USER"/>
<Capability Name="ID_CAP_LOCATION"/>
<Capability Name="ID_CAP_MEDIALIB"/>
<Capability Name="ID_CAP_MICROPHONE"/>
<Capability Name="ID_CAP_NETWORKING"/>
<Capability Name="ID_CAP_PHONEDIALER"/>
<Capability Name="ID_CAP_PUSH_NOTIFICATION"/>
<Capability Name="ID_CAP_SENSORS"/>
<Capability Name="ID_CAP_WEBBROWSERCOMPONENT"/>
<Capability Name="ID_CAP_ISV_CAMERA"/>
<Capability Name="ID_CAP_CONTACTS"/>
<Capability Name="ID_CAP_APPOINTMENTS"/>
</Capabilities>
<Tasks>
<DefaultTask Name ="_default" NavigationPage="MainPage.xaml"/>
</Tasks>
<Tokens>
<PrimaryToken TokenID="PhoneAppToken" TaskName="_default">
<TemplateType5>
<BackgroundImageURI IsRelative="true" IsResource="false">Background.png</BackgroundImageURI>
<Count>0</Count>
<Title>PhoneApp</Title>
</TemplateType5>
</PrimaryToken>
</Tokens>
</App>
</Deployment>