• [WP]剖析WMAppManifest.xml-属性文件


    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的引用。

  • 相关阅读:
    1128项目跟进
    冲刺一 (day 3)
    1118 冲刺1-需求文档(初稿)
    1117 新冲刺 day1
    0622 总结与回顾
    0621 第三次冲刺
    0617 主存空间的分配和回收
    学习进度条
    软件工程学期总结
    学术诚信与职业道德
  • 原文地址:https://www.cnblogs.com/webapplee/p/3767819.html
Copyright © 2020-2023  润新知