笔记(一):第一个windows phone应用程序

在用于Windows Phone的Microsoft Visual Studio2010Express中创建一个新的Windows Phone应用程序:



Hello Phone的Silverlight Windows Phone工程项目,可看到项目的结构:


Hello Phone 项目包含以下项(Item):

Item

Description

App.xaml / App.xaml.cs

定义应用程序的入口点,初始化应用程序范围内的资源,,显示应用程序用户界面

MainPage.xaml / MainPage.xaml.cs

定义应用程序中的程序页面(带有用户界面的页面)

ApplicationIcon.png

一种带有图标的图像文件,代表了手机应用程序列表中应用程序的图标

Background.png

一种带有图标的图像文件,代表了在开始页面上应用程序的图表

SplashScreenImage.jpg

这个图片会在应用程序第一次被启动时显示。启动画面会给用户一个即时的反馈,告诉用户应用程序正在启动直到成功跳转到应用程序的第一个页面。用户的启动画面可以和应用程序的一个页面设计的非常相似,这样能给使用这一个应用程序被快速加载的感觉。

Properties\AppManifest.xml

一个生成应用程序包所必需的应用程序清单文件

Properties\AssemblyInfo.cs

包含名称和版本的元数据,这些元数据将被嵌入到生成的程序集

Properties\WMAppManifest.xml

一个包含与Windows Phone Silverlight应用程序相关的特定元数据的清单文件,且包含了用于Windows Phone的Silverlight所具有的特定功能

References folder

一些库文件(集)的列表,为应用程序的工作提供功能和服务。



项目的基本档案结构

Propertys\WMAppmanifest.xml
<?xml version="1.0" encoding="utf-8"?>

<Deployment xmlns="http://schemas.microsoft.com/windowsphone/2009/deployment" AppPlatformVersion="7.0">
  <App xmlns="" ProductID="{feff9099-9381-47fc-a91c-f64afe941b60}" Title="InputScopeDemo" RuntimeType="Silverlight" Version="1.0.0.0" Genre="apps.normal"  Author="InputScopeDemo author" Description="Sample description" Publisher="InputScopeDemo">
    <IconPath IsRelative="true" IsResource="false">ApplicationIcon.png</IconPath>
    <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"/>



  • ProductID:代表应用程序的 GUID 字符串
  • Title:项目的默认名称,这里的文字也会显示在应用程序列表列表
  • RuntimeType:设定应用程序是 Silverlight 或是 XNA 的类型
  • Version:应用程序的版本编号
  • Genre:当应用程序为 Silverlight 时会为 apps.normal,apps.game 则为 XNA
  • Author:作者名称
  • Description:应用程序的描述 (说明)
  • Publisher:这个值预设会是项目的名称,当您的应用程序有使用到 Push 的相关功能,这个值是一定要有的

接下来是 <Capabilities> 相关的区块,在这个区块中则是描述了应用能够使用的功能性,例如能不能使用网络的功能或是存取媒体柜 (Media library) 的内容;在一般的情形下,我们是不需要去修改到这个部分的,假设当你移除了某些功能,例如说移除了 WebBrowser 的部分

<Capability Name="ID_CAP_WEBBROWSERCOMPONENT" />

那么当你在程序代码中有使用到 WebBrowser 相关的功能时,程序便会出错了,而 unhandle exception 在 Silverlight for Windows Phone 中是会直接关闭应用程序的,所以你看到的情形就会是『疑?我的程序怎么自动消失了』。

再往下看会看到Task的标签,一般来说会像是下面这样

<Tasks>
  <DefaultTask  Name ="_default" NavigationPage="MainPage.xaml"/>
</Tasks>

这个是应用程序内部使用的,一般来说也不会去修改到,不过可以留意一下 NavigationPage 的部分,假设你的起始页面 (第一个显示的 Page) 名称不是 MainPage 的话,可以在这边做对应的修改。

再往下是 Token 的部分,例如下面

<Tokens>
  <PrimaryToken TokenID="TestToken" TaskName="_default">
    <TemplateType5>
      <BackgroundImageURI IsRelative="true" IsResource="false">Background.png</BackgroundImageURI>
      <Count>0</Count>
      <Title>Test</Title>
    </TemplateType5>
  </PrimaryToken>
</Tokens>

这边是设定当你的应用程序加到 Tile (也就是首页的地方) 之后相关的设定;要特别注意 TaskName 这个地方的设定是在Tile点下你的应用程序之后,会去启动应用程序的相关设定,跟上面提到 <Tasks> 中 Name 的属性是有相对应的关系的。

BackgroundImageURI 是当你的应用程序锚定到首页 (Pin to Start) 之后的背景图案,用下面这张图来看会比较清楚

而 <Count> 的标签是做甚么用途的呢?也直接来看一下图的效果,下面是 Count 设定为 0 跟 Count 设定为 5 时的分别

 

不过使用上较不会直接订死在配置文件中,这个部分陆续在系列中谈到 Push Notifications 的章节时会再谈到。

 App.xaml

App.xaml 与 App.xaml.cs 这两个档案,预设包含了 Lifecycle (应用程序生命周期) 的相关事件处理,包含初次启动、失去焦点 (通常发生在使用者启动另外一个应用程序) 等等的相关处理;这部分在这系列中谈到生命周期的部分会再跟各位说明。而其中也可以去定义一些全局的资源 (resource) 或是全局的方法来使用,这部分就看您的应用程序如何去定义了。

 MainPage.xaml

预设的起始页面档案

 ApplicationIcon.png (63 * 63 pixels)

应用程序行表中使用的图形,如果没有指定则会缩小 Background 的图形作为列表的应用程序图形

 Background.png (173 * 173 pixels)
  • 作为 Tile (位于首页上应用程序的链接) 上的应用程序的背景图案,支持 jpg、png 文件格式
  • 过大或是太小的图形将会被自动缩放
 SplashScreenImage.jpg (480 * 800 pixels)
  • 应用程序启动后,Mainpage.xaml 加载完成之前的等待画面
  • 名称不能变动,编译选项必须为内容 (content)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值