简述Windows Phone 7应用程序开发平台

原创
移动开发
本文将简述Windows Phone 7的应用程序开发平台——“Silverlight for Windows Phone”。当你创建一个新的Windows Phone应用程序时,新解决方案包括Silverlight MainPage.xaml页面,你可以拖放控件到设计界面,实时查看Windows Phone 7屏幕的布局预览效果。

51CTO曾经报道过微软推广Windows Phone 7时,Silverlight程序员必将成为赢家。“Silverlight for Windows Phone”是Windows Phone 7的应用程序开发平台。为Windows Phone 7开发Silverlight UI必须得了解Windows Phone 7应用程序开发平台Silverlight for Windows Phone。当你创建一个新的Windows Phone应用程序时,新解决方案包括Silverlight MainPage.xaml页面,在设计视图中,这个页面显示为Windows Phone 7用户界面的预览效果,如图1所示,你可以拖放控件到设计界面,实时查看Windows Phone 7屏幕的布局预览效果。当你在Visual Studio 2010中开发Silverlight应用程序时,如果你修改了XAML代码,你的修改将会反映到Windows Phone 7模拟器屏幕上。

Visual Studio 2010中MainPage.xaml预览视图,右侧为XAML代码 
图 1 Visual Studio 2010中MainPage.xaml预览视图,右侧为XAML代码

根据设计资料提供的信息,所有Windows Phone 7设备的屏幕通通是WVGA,无论屏幕大小如何,分辨率通通是800x480,固定的分辨率给UI设计带来了极大的方便,最大的缺点是用鼠标或开发工作站的触摸板无法模拟多点触控,但不要灰心,在CodePlex上有一个开源项目叫做Multi-Touch Vista,它允许你使用多个鼠标模拟两根手指在屏幕上实现多点触摸。

Multi-Touch Vista提供了兼容Windows 7的驱动,可以让多个鼠标兼容Windows Phone 7模拟器,例如,你可以在笔记本电脑上接上一个USB鼠标,加上笔记本自带的触摸板,就可以用它们模拟两根手指实现多点触摸。

Windows Phone应用程序的项目结构和传统的Silverlight应用程序结构类似,但Windows Phone项目增加了一些专有引用和文件,图2显示了一个WPBusinessApp示例项目的项目结构,它是Visual Studio 2010创建的Windows Phone应用程序项目默认结构。

解决方案资源管理器显示的Windows Phone应用程序项目结构
图 2 解决方案资源管理器显示的Windows Phone应用程序项目结构

你会发现在Properties文件夹下有一个WMAppManifest.xml文件,这个XML文件定义了从操作系统角度来看的资源和功能,下面的代码片段显示了这个文件的默认内容,假设项目名是WPBusinessApp:

  1. <?xml version="1.0" encoding="utf-8"?> 
  2.  <Deployment 
  3.  xmlns="http://schemas.microsoft.com/windowsphone/2009/deployment" 
  4.  AppPlatformVersion="7.0"> 
  5.  <App xmlns="" ProductID="{41bdea14-687b-4815-93b3-a51759f18a09}" 
  6.  Title="WPBusinessApp" RuntimeType="Silverlight" Version="1.0.0.0" 
  7.  Genre="apps.normal" Author="WPBusinessApp author" 
  8.  Description="Sample description" Publisher="WPBusinessApp"> 
  9.  <IconPath IsRelative="true" 
  10.  IsResource="false">ApplicationIcon.png</IconPath> 
  11.  <Capabilities> 
  12.  <Capability Name="ID_CAP_NETWORKING" /> 
  13.  <Capability Name="ID_CAP_LOCATION" /> 
  14.  <Capability Name="ID_CAP_SENSORS" /> 
  15.  <Capability Name="ID_CAP_MICROPHONE" /> 
  16.  <Capability Name="ID_CAP_MEDIALIB" /> 
  17.  <Capability Name="ID_CAP_GAMERSERVICES" /> 
  18.  <Capability Name="ID_CAP_PHONEDIALER" /> 
  19.  <Capability Name="ID_CAP_PUSH_NOTIFICATION" /> 
  20.  <Capability Name="ID_CAP_WEBBROWSERCOMPONENT" /> 
  21.  </Capabilities> 
  22.  <Tasks> 
  23.  <DefaultTask Name ="_default" 
  24.  NavigationPage="MainPage.xaml"/> 
  25.  </Tasks> 
  26.  <Tokens> 
  27.  <PrimaryToken TokenID="WPBusinessAppToken" 
  28.  TaskName="_default"> 
  29.  <TemplateType5> 
  30.  <BackgroundImageURI IsRelative="true" 
  31.  IsResource="false">Background.png</BackgroundImageURI> 
  32.  <Count>0</Count> 
  33.  <Title>WPBusinessApp</Title> 
  34.  </TemplateType5> 
  35.  </PrimaryToken> 
  36.  </Tokens> 
  37.  </App> 
  38.  </Deployment> 

WMAppManifest.xml文件中的<Capabilities>部分定义了Windows Phone需要的功能列表,默认情况下包含了所有的功能,但为了安全起见,你最好移除不需要的功能,如果你尝试使用一个功能列表中未包含的功能,你会收到UnauthorizedAccessException异常。

功能列表中的名字也很容易理解,例如,ID_CAP_LOCATION表示你要访问包括在System.Device.Location命名空间中的本地(location)服务,但有些功能关联的命名空间和类很多。

WMAppManifest.xml文件还定义了图标,背景图像和应用程序标题,你可以用PNG位图文件作为图标,默认图标文件是ApplicationIcon.png,默认背景图像是Backgroud.png,你可以编辑XML代码或在项目属性的“应用程序”标签页修改这些属性的值,如图3所示。

项目属性窗口中的“应用程序”页
图 3项目属性窗口中的“应用程序”页

默认情况下,项目包含两个Windows Phone相关的引用:Microsoft.Phone和Microsoft.Phone.Interop,Windows.Phone提供访问Microsoft.Phone.Controls和Microsoft.Phone.Shell的功能,如果你要使用传感器,还需要增加Microsoft.Devices.Sensors的引用。

原文出处:http://www.drdobbs.com/windows/227701092;jsessionid=0LPPSGFA3UDNBQE1GHPSKH4ATMY32JVN

原文名:Developing a Silverlight UI for Windows Phone 7

作者:Gaston Hillar

【编辑推荐】 

  1. Windows Phone 7 UI设计理念
  2. Windows Phone 7 UI设计菜单:代码隐藏文件和启动画面
  3.  Windows Phone 7 UI设计菜单:理解MainPage.xaml
  4. Windows Phone 7开发工具发布更新包 附下载地址
  5. 微软推Windows Phone 7 Silverlight程序员成赢家
责任编辑:佚名 来源: 51CTO
相关推荐

2011-04-08 10:02:06

日历Windows Pho

2011-03-21 09:05:40

IronRubyWindows Pho

2010-12-01 09:01:31

独立存储Windows Pho

2011-04-01 13:20:40

Windows Pho应用程序

2012-05-17 14:15:10

Windows Pho

2010-10-29 14:08:01

.NETWindows PhoiPhone

2013-07-30 13:38:27

Windows PhoWindows Pho

2013-07-31 14:50:32

Windows PhoWP应用程序生命周期

2011-10-25 10:24:03

Windows Pho

2012-05-28 15:37:20

WP程序生命周期

2011-12-06 10:45:16

云计算应用Windows Pho

2013-07-30 11:18:37

Windows PhoWindows Pho

2020-09-24 10:54:10

谷歌Flutter开发

2010-08-27 09:36:57

Windows Pho

2012-08-16 10:35:50

Windows Pho

2011-06-07 11:35:38

Windows Pho

2010-12-14 18:48:49

微软

2011-06-08 10:24:38

Windows Pho 应用程序

2011-06-08 10:01:36

Windows Pho 应用程序

2011-12-03 21:03:14

Windows Pho
点赞
收藏

51CTO技术栈公众号