24、Windows Phone 7 开发指南

Windows Phone 7 开发指南

1. 安装 Windows Phone 7 文档

如果你想深入了解 Windows Phone 7 编程模型,建议更新本地的 .NET Framework 4.0 文档帮助系统,以获取 Windows Phone 7 文档。假设你之前已安装 Visual Studio 2010,可按以下步骤操作:
1. 使用 Windows 开始按钮,导航至“所有程序”>“Microsoft Visual Studio 2010”>“Visual Studio 工具”。
2. 打开“管理帮助设置”工具。
3. 选择安装本地帮助文档。

也可以选择在线查看帮助系统,网址为:http://msdn.microsoft.com 。

建议每隔几周运行一次“管理帮助设置”工具,它会检测文档更新并允许你下载最新信息。安装 SDK 文档后,可启动本地 .NET 文档并搜索“Silverlight for Windows Phone”主题。

2. 关键 Windows Phone 7 命名空间概述

开发 Windows Phone 7 应用程序实际上是构建 Silverlight 程序。Windows Phone 7 SDK 包含一些新的 .NET 程序集,定义了许多新的 .NET 命名空间。以下是一些核心命名空间的简要概述:
| Windows Phone 命名空间 | 含义 |
| — | — |
| Microsoft.Devices | 定义了少量类型,可直接对 Windows Phone 7 设备进行编程,如使设备振动、获取设备平台版本信息等。 |
| Microsoft.Devices.Radio | 提供对手持设备 FM 收音机功能的编程访问。 |
| MicrosoftDevices.Sensors | 提供访问加速度计的 API。 |
| Microsoft.Phone.Controls | 定义了许多以手机为中心的控件,包括用于构建全景和枢轴显示的类型。 |
| Microsoft.Phone.Notification | 允许 Windows Phone 7 应用程序接收通过 Microsoft 推送通知服务发送的数据。 |
| Microsoft.Phone.Tasks | 定义了许多类型,可与手持设备的关键服务进行交互,如集成相机、电子邮件程序和电话服务。 |

3. 查看新的 Blend 项目

启动 Blend 并选择“文件”>“新建项目”,在“新建项目”对话框中会看到一个新的 Windows Phone 节点,定义了多种项目类型。以下是 Expression Blend 中的新 Windows Phone 项目模板:
| Windows Phone 项目模板 | 含义 |
| — | — |
| | 创建 Silverlight for Windows Phone 应用程序的简单项目模板。 |
| | 同样用于创建 Silverlight for Windows Phone 应用程序,但使用视图和视图模型对象,在表示层和数据逻辑之间提供松散耦合。 |
| | 使用全景控件创建全景样式的应用程序。 |
| | 使用枢轴控件创建选项卡样式的应用程序。 |
| | 用于创建可在其他 Windows Phone 应用程序中重复使用的自定义控件。 |

全景样式的应用程序允许构建一个长的水平 UI 元素画布,可在手机视口中平滑平移;枢轴样式的应用程序允许最终用户在一组相关的 UI 页面之间“翻转”,类似于翻书。

安装 Windows Phone 7 SDK 后,本地的 Expression Blend 用户指南会更新一组相关的教程和演练。而且,之前学到的很多知识都可直接应用于 Windows Phone 7 开发,例如使用 Expression Blend 进行以下操作:
- 创建和交互矢量图形
- 打包和使用对象资源
- 处理动画和缓动效果
- 使用控件、布局管理器和行为构建 UI
- 创建样式、模板和用户控件
- 使用数据面板绑定数据并创建自定义数据模板

4. 查看新的 Visual Studio 2010 项目

访问 Visual Studio 2010 的“文件”>“新建项目”菜单选项,会在所选编程语言下看到一个新的“Silverlight for Windows Phone 7”节点,项目模板类型与 Expression Blend 中的相同。可以使用 Expression Blend 或 Visual Studio 2010 启动新的 Windows Phone 7 项目,并根据需要在任一工具中打开代码库。

5. 探索 Windows Phone 应用程序项目类型

5.1 Windows Phone 画板

使用 Expression Blend 创建新的 Windows Phone 应用程序项目(命名为 FirstPhoneApp)后,画板会自动显示一个“手机页面”,包含正在构建的应用程序 UI。查看“对象和时间线”面板,会发现主布局管理器是一个名为 LayoutRoot 的 Grid 对象,分为两行:第一行包含一个名为 TitlePanel 的 StackPanel,用于显示顶部的基本文本;第二行包含一个名为 ContentPanel 的子 Grid 对象,可在此设计 UI。初始标记如下:

<!--LayoutRoot is the root grid where all page content is placed-->
<Grid x:Name="LayoutRoot" Background="Transparent">
  <Grid.RowDefinitions>
    <RowDefinition Height="Auto"/>
    <RowDefinition Height="*"/>
  </Grid.RowDefinitions>

  <!--TitlePanel contains the name of the application and page title-->
  <StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28">
    <TextBlock x:Name="ApplicationTitle" Text="MY APPLICATION"  
               Style="{StaticResource PhoneTextNormalStyle}"/>
    <TextBlock x:Name="PageTitle" Text="page name" Margin="9,-7,0,0"  
               Style="{StaticResource PhoneTextTitle1Style}"/>
  </StackPanel>

  <!--ContentPanel - place additional content here-->
  <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0"/>
</Grid>

5.2 Windows Phone 系统样式

TextBlock 对象自动使用了一些 Windows Phone 7 样式(PhoneTextNormalStyle 和 PhoneTextTitle1Style)。Windows Phone 应用程序可以(并且根据 UI 最佳实践通常应该)使用一组内置的系统样式,可在“资产库/资产面板”中查看这些默认样式。设计 UI 时,可以使用“属性”面板将这些样式连接到控件,或者从“资产库”的“系统样式”类别中选择一个样式并拖到画板上。

5.3 使用数据面板创建列表 - 详细视图

可使用多种技术创建用户界面,以下是一个示例应用程序的创建步骤:
1. 导入类 :使用“项目”>“添加现有项”导入之前创建的 PurchaseOrder 和 PurchaseOrders 类。
2. 构建项目 :使用“项目”>“构建项目”构建项目。
3. 创建对象数据源
- 点击“数据”面板上的“创建数据源”下拉按钮。
- 选择“创建对象数据源”选项。
- 从弹出的对话框中选择类(示例中为 PurchaseOrders)。
4. 绑定数据 :将“数据”面板中的“Description”节点拖到第二个 Grid 对象(默认名为 ContentPanel)。
5. 创建列表 - 详细关系 :点击“数据”面板左上角的“详细信息模式”按钮,然后从“数据”面板中选择 PurchaseOrders 下的每个节点并拖到画板上。

完成后,可根据需要调整项目项的大小、位置或配置。

5.4 创建交互式图形

Windows Phone 7 项目支持创建交互式图形,但默认形状选择有限。可使用笔和铅笔工具创建自由形式的数据,也可选择矩形、直线和椭圆工具绘制基本几何图形。以下是创建交互式图形的步骤:
1. 添加画布布局管理器 :向 ContentPanel Grid 对象添加一个新的 Canvas 布局管理器,可以从“资产面板”拖放项目到“对象和时间线”面板,或者选择项目并通过鼠标在画板上绘制。
2. 绘制椭圆 :在新的 Canvas 中绘制一个椭圆。
3. 添加行为 :在“资产面板”的“行为”类别中找到 MouseDragElementBehavior 对象,选择并拖到椭圆上。
4. 配置行为属性 :在“对象和时间线”面板中选择新的 MouseDragElementBehavior 对象,然后在“属性”面板中勾选“ConstrainToParentBounds”属性。
5. 运行应用程序 :按 F5 或 Ctrl + F5 运行应用程序,Windows Phone 7 模拟器将自动启动并托管应用程序,可通过鼠标与图形交互并查看每个列表项的详细信息。

5.5 创建自定义控件模板

创建自定义控件模板的步骤如下:
1. 创建几何形状 :使用笔工具在 ContentPanel Grid 对象的下部创建一个几何形状。
2. 转换为控件 :右键单击该项目并选择“转换为控件”。
3. 选择控件类型和命名 :在弹出的“转换为控件”对话框中,选择 Button 控件类型,命名(示例中命名为 TriangleButton),并选择将新对象资源存储在应用程序级别。
4. 编辑模板 :模板将在 IDE 中使用模板设计器显示,可以更改 UI 属性,使用可视化状态管理器和“状态”面板添加交互性等。
5. 重建项目 :对模板满意后,使用“项目”>“构建项目”重建项目。

5.6 处理点击事件

处理新生成的 Button 控件(之前是一个简单的三角形图形)的点击事件,使用“属性”面板的“事件”按钮处理此事件,并编写以下事件处理逻辑:

private void Button_Click(object sender,  
  System.Windows.RoutedEventArgs e) 
{ 
  MessageBox.Show("Yippy! My phone app rocks!"); 
} 

5.7 通过设备面板配置模拟器

运行应用程序前,打开 MainPage.xaml 文件到 Blend 画板,通过 Blend IDE 的“窗口”菜单打开 Windows Phone 7 设备面板。该面板允许配置项目执行时 Windows Phone 7 应用程序的处理设置,默认使用随 SDK 安装的 Windows Phone 7 模拟器,也可以连接到物理兼容设备,还可以更改显示方向和颜色主题。

4. 探索全景应用程序项目类型

之前的示例使用了最简单的 Windows Phone 7 模板 - Windows Phone 应用程序项目类型,默认由单个 UI 显示页面组成,所有 UI 内容通常限制在设备屏幕内。而 Windows Phone 7 平台还提供了 Windows Phone 全景应用程序项目类型,全景应用程序通过使用一个长的水平显示,提供了一种独特的方式来查看应用程序的 UI 内容,该显示超出了设备屏幕的范围。当用户使用手指(真实手机;在模拟器中使用鼠标实现类似效果)操作时,视口将使用分层动画平滑滚动到较大图形的下一部分,类似于视差效果。

为了理解 Windows Phone 7 全景显示的构建块,使用“文件”>“新建项目”创建一个名为 PanoramaDemoApp 的新 Windows Phone 全景应用程序项目。查看“对象和时间线”面板,会发现 LayoutRoot Grid 对象定义了一个类型为 Panorama 的子对象,负责在其一组 PanoramaItem 对象之间平滑过渡,目前有两个 PanoramaItem 对象,每个对象包含一个 ListBox。

graph LR
    A[开始] --> B[创建 Windows Phone 全景应用程序项目]
    B --> C[查看对象和时间线面板]
    C --> D[发现 LayoutRoot Grid 对象]
    D --> E[包含 Panorama 对象]
    E --> F[Panorama 包含多个 PanoramaItem]
    F --> G[每个 PanoramaItem 包含 ListBox]
    G --> H[结束]

以上就是关于 Windows Phone 7 开发的详细介绍,涵盖了从文档安装到不同项目类型开发的各个方面,希望对你有所帮助。

6. 全景应用程序项目类型详细剖析

6.1 全景应用程序的特点

全景应用程序的独特之处在于其长水平显示,超出了设备屏幕范围。这种设计能为用户带来更丰富的视觉体验,用户可以通过手指滑动(在模拟器中用鼠标操作),以平滑的分层动画滚动查看不同部分的内容,就像在浏览一幅长长的画卷。与普通的单页应用相比,全景应用能够展示更多的信息,并且在视觉上更加连贯和流畅。

6.2 Panorama 对象与 PanoramaItem 对象

在 PanoramaDemoApp 项目中,LayoutRoot Grid 对象下的 Panorama 对象起到了核心的过渡作用。它负责管理一组 PanoramaItem 对象,使得用户在浏览时能够在不同的 PanoramaItem 之间平滑切换。每个 PanoramaItem 可以看作是一个独立的内容板块,在这个例子中,每个 PanoramaItem 包含一个 ListBox,用于展示列表数据。以下是一个简单的代码示例,展示了 Panorama 和 PanoramaItem 的基本结构:

<Grid x:Name="LayoutRoot" Background="Transparent">
    <controls:Panorama x:Name="MainPanorama">
        <controls:PanoramaItem Header="Item 1">
            <ListBox>
                <!-- ListBox 内容 -->
            </ListBox>
        </controls:PanoramaItem>
        <controls:PanoramaItem Header="Item 2">
            <ListBox>
                <!-- ListBox 内容 -->
            </ListBox>
        </controls:PanoramaItem>
    </controls:Panorama>
</Grid>

6.3 全景应用的交互设计

在设计全景应用时,需要考虑用户的交互体验。例如,可以为 PanoramaItem 中的元素添加动画效果,当用户滑动到该 PanoramaItem 时,元素以动画的形式展示出来,增加交互的趣味性。还可以根据用户的操作,动态地加载或更新 PanoramaItem 中的内容,提高应用的响应性。

7. 不同项目类型的对比与选择

7.1 项目类型对比

项目类型 特点 适用场景
Windows Phone 应用程序项目类型 通常由单个 UI 显示页面组成,UI 内容限制在设备屏幕内,结构简单 适合简单的应用,如展示少量信息的工具类应用
Windows Phone 全景应用程序项目类型 具有长水平显示,超出设备屏幕范围,可提供丰富的视觉体验和流畅的交互 适合需要展示大量相关信息的应用,如新闻资讯类应用、产品展示应用等

7.2 选择建议

在选择项目类型时,需要根据应用的需求和目标用户来决定。如果应用的功能简单,只需要展示少量的信息,那么 Windows Phone 应用程序项目类型可能是一个不错的选择。如果应用需要展示大量的内容,并且希望为用户提供独特的视觉体验和流畅的交互,那么 Windows Phone 全景应用程序项目类型会更合适。

8. Windows Phone 7 开发的注意事项

8.1 性能优化

在开发 Windows Phone 7 应用时,性能优化是非常重要的。由于手机设备的资源有限,过多的动画、复杂的布局和大量的数据加载可能会导致应用运行缓慢。因此,需要注意以下几点:
- 尽量减少不必要的动画效果,避免过度渲染。
- 优化布局,避免嵌套过深的布局结构。
- 采用数据分页加载的方式,避免一次性加载大量数据。

8.2 兼容性问题

不同的 Windows Phone 7 设备可能存在硬件差异,因此在开发过程中需要考虑兼容性问题。例如,某些设备的屏幕分辨率可能不同,需要确保应用在不同分辨率的屏幕上都能正常显示。另外,不同设备的处理器性能也可能不同,需要进行性能测试,确保应用在各种设备上都能稳定运行。

8.3 安全问题

在开发 Windows Phone 7 应用时,需要注意用户数据的安全。例如,在处理用户的个人信息时,需要进行加密处理,避免信息泄露。另外,需要确保应用不会受到恶意攻击,如 SQL 注入、跨站脚本攻击等。

9. 总结

通过以上的介绍,我们对 Windows Phone 7 开发有了全面的了解。从安装文档开始,我们学习了关键的命名空间、不同的项目类型(包括 Windows Phone 应用程序项目类型和 Windows Phone 全景应用程序项目类型)的创建和开发,以及在开发过程中需要注意的性能优化、兼容性和安全问题。

在实际开发中,我们可以根据应用的需求选择合适的项目类型,并运用所学的知识进行 UI 设计、数据绑定、交互实现等操作。同时,要时刻关注性能、兼容性和安全问题,确保开发出高质量的 Windows Phone 7 应用。

graph LR
    A[开始开发 Windows Phone 7 应用] --> B[选择项目类型]
    B --> C{应用需求简单?}
    C -- 是 --> D[Windows Phone 应用程序项目类型]
    C -- 否 --> E[Windows Phone 全景应用程序项目类型]
    D --> F[进行 UI 设计与开发]
    E --> F
    F --> G[数据绑定与交互实现]
    G --> H[性能优化]
    H --> I[兼容性测试]
    I --> J[安全检查]
    J --> K[发布应用]
    K --> L[结束]

希望这些内容能够帮助你顺利开展 Windows Phone 7 开发工作,打造出优秀的应用程序。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值