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 开发工作,打造出优秀的应用程序。
超级会员免费看
2363

被折叠的 条评论
为什么被折叠?



