目 录
第1 章 Windows Phone 7 介绍 / 1
1.1 Windows Mobile 平台 / 2
1.1.1 iPhone 的出现 / 2
1.1.2 Android 问世 / 3
1.1.3 Microsoft 重新进入市场 / 3
1.2 Windows Phone 7 平台 / 4
1.2.1 Windows Phone 7 的硬件规范 / 4
1.2.2 Windows Phone 7 的体系结构 / 5
1.3 开始进行Windows Phone 7开发 / 9
1.4 小结 / 16
第2 章 借助Silverlight 创建炫丽的应用程序 / 19
2.1 Windows Phone 7 的开发需求 / 20
2.2 什么是Silverlight / 20
2.2.1 什么是XAML / 21
2.2.2 Windows Phone 应用程序的结构 / 22
2.2.3 Silverlight 控件与开发 / 29
2.2.4 常用控件属性 / 30
2.2.5 布局控件 / 32
2.2.6 Silverlight 编程 / 39
2.2.7 交互控件 / 42
2.3 小结 / 56
第3 章 使用形状、颜色、笔刷和变换美化应用程序 / 59
3.1 创建形状 / 59
3.1.1 Ellipse 控件 / 60
3.1.2 Rectangle 控件 / 61
3.1.3 Line 控件 / 62
3.1.4 Polygon 控件 / 66
3.1.5 Polyline 控件 / 67
3.2 使用颜色 / 68
3.3 使用笔刷 / 71
3.3.1 SolidColorBrush 对象 / 71
3.3.2 LinearGradientBrush 对象 / 71
3.3.3 RadialGradientBrush 对象 / 73
3.3.4 ImageBrush 对象 / 74
3.4 应用变换 / 75
3.4.1 RotateTransform 对象 / 75
3.4.2 ScaleTransform 对象 / 77
3.4.3 SkewTransform 控件 / 78
3.4.4 TranslateTransform 对象 / 78
3.4.5 TransformGroup 对象 / 81
3.5 小结 / 88
第4 章 高级用户界面技术:样式、模板和Visual State Manager / 89
4.1 了解控件样式 / 90
4.1.1 应用程序样式 / 91
4.1.2 BaseOn 样式 / 97
4.1.3 控件模板 / 98
4.1.4 Visual State Manager / 105
4.1.5 Expression Blend / 114
4.1.6 用户控件 / 115
4.1.7 自定义控件 / 118
4.2 小结 / 130
第5 章 独立存储、页面导航和应用程序生命周期 / 133
5.1 独立存储 / 134
5.1.1 Windows Phone 7 数据存储的工作原理 / 134
5.1.2 开始使用独立存储 / 135
5.1.3 IsolatedStorageSettings对象 / 135
5.1.4 IsolatedStorageFile 对象 / 136
5.2 使用导航框架 / 141
5.2.1 了解导航框架 / 141
5.2.2 NavigationService 类 / 142
5.2.3 查询字符串 / 142
5.2.4 导航事件 / 143
5.2.5 页面状态 / 143
5.3 应用程序生命周期 / 152
5.3.1 启动状态 / 152
5.3.2 运行状态 / 153
5.3.3 关闭状态 / 153
5.3.4 停用状态 / 153
5.3.5 激活状态 / 154
5.4 小结 / 165
第6 章 与硬件交互 / 167
6.1 移动设备应用程序开发的区别是什么 / 168
6.2 Windows Phone 7 硬件规范 / 169
6.3 更改设备方向 / 169
6.3.1 配置应用程序支持的方向 / 170
6.3.2 响应方向变化 / 170
6.3.3 设备方向的最佳实践 / 176
6.4 了解Back 按钮 / 176
6.4.1 使用Back 按钮的功能 / 176
6.4.2 响应Back 按钮 / 177
6.5 振动 / 181
6.6 收听FM 收音机 / 182
6.7 用加速计加速 / 182
6.7.1 AccelerometerSensor传感器 / 183
6.7.2 模拟加速计数据 / 192
6.8 小结 / 201
第7 章 启动器、选择器和高级用户输入 / 205
7.1 使用应用程序栏 / 206
7.1.1 添加应用程序栏 / 207
7.1.2 应用程序栏的最佳实践 / 220
7.2 使用启动器和选择器 / 220
7.2.1 启动器概述 / 221
7.2.2 选择器概述 / 221
7.2.3 墓碑化 / 222
7.2.4 使用联系人 / 223
7.2.5 打电话 / 229
7.2.6 使用电子邮件和SMS消息 / 229
7.2.7 与相机进行交互 / 230
7.2.8 使用其他启动器 / 231
7.3 软件输入面板 / 237
7.4 使用多点触摸 / 238
7.4.1 模拟多点触摸 / 239
7.4.2 操作事件 / 239
7.4.3 使用手势 / 248
7.5 小结 / 249
第8 章 Windows Phone 7 服务与云服务 / 251
8.1 什么是服务 / 252
8.2 借助位置服务确定自己的位置 / 253
8.2.1 对位置数据源的概述和比较 / 253
8.2.2 获取位置信息 / 254
8.2.3 位置服务的最佳实践 / 266
8.3 使用云服务 / 267
8.3.1 使用微软云数据 / 267
8.3.2 在Windows Phone 7 应用中使用必应地图 / 269
8.4 小结 / 274
第9 章 创建和使用Web 服务 / 277
9.1 服务体系结构的基础知识 / 277
9.1.1 HTTP / 278
9.1.2 REST / 279
9.1.3 WCF / 279
9.2 Web 请求和响应 / 280
9.2.1 使用WebClient / 280
9.2.2 使用WebRequest 和WebResponse / 280
9.2.3 缓存响应 / 286
9.3 基于REST 的服务 / 287
9.3.1 使用RESTful 服务 / 287
9.3.2 创建RESTful 服务 / 296
9.4 WCF 服务 / 296
9.4.1 用于创建WCF 服务的工具 / 296
9.4.2 托管WCF 服务 / 296
9.4.3 创建WCF 服务 / 296
9.4.4 WCF 服务的示例应用程序 / 297
9.4.5 WCF REST 服务 / 310
9.5 小结 / 313
第10 章 Web 服务推送通知 / 317
10.1 推送通知架构 / 318
10.1.1 推送通知组件 / 318
10.1.2 注册推送通知服务 / 318
10.1.3 创建并打开通知通道 / 319
10.1.4 推送通知的类型 / 319
10.2 发送与响应推送通知 / 321
10.2.1 通知通道的创建和配置 / 321
10.2.2 发送推送通知服务消息 / 328
10.2.3 创建推送通知服务 / 331
10.3 小结 / 340
第11 章 Windows Phone 7 上的XNA平台 / 343
11.1 XNA 概述 / 343
11.2 XNA 游戏:Tank / 344
11.2.1 解决方案中的内容 / 346
11.2.2 Game 类 / 347
11.2.3 运行Tank 游戏 / 351
11.2 绘制2-D 图形 / 352
11.2.1 SpriteBatch 类 / 352
11.2.2 ContentManager 类 / 353
11.2.3 绘制图像的方法 / 353
11.2.4 绘制文本的方法 / 357
11.3 更新游戏状态 / 360
11.3.1 向量运算 / 361
11.3.2 保持同步 / 363
11.3.3 TouchPanel 类 / 364
11.3.4 驾驶坦克 / 364
11.4 使用游戏组件简化代码 / 369
11.4.1 GameComponent和Drawable-GameComponent 类 / 369
11.4.2 GameComponent 的生命周期 / 382
11.5 更多的XNA 经验和技巧 / 382
11.5.1 高效处理大量对象 / 382
11.5.2 播放声音 / 389
11.5.3 高等几何图形:制导导弹 / 390
11.5.4 非可视组件 / 392
11.5.5 检测碰撞 / 394
11.5.6 使用阴影渲染平滑的文本 / 396
11.6 小结 / 398
第12 章 Expression Blend / 401
12.1 Blend 界面 / 402
12.2 创建窗体 / 404
12.2.1 添加布局面板 / 404
12.2.2 添加控件 / 405
12.2.3 编辑属性 / 406
12.2.4 修改可视化设计 / 409
12.2.5 添加可视化元素 / 410
12.2.6 修改属性 / 410
12.3 主题和资源 / 413
12.3.1 管理资源 / 413
12.3.2 使用样式重用代码 / 414
12.3.3 编辑控件模板 / 416
12.4 动画 / 417
12.4.1 使用情节提要管理动画 / 417
12.4.2 可视状态 / 420
12.5 Blend 中的数据绑定 / 422
12.5.1 绑定到数据上下文 / 422
12.5.2 绑定到元素 / 423
12.5.3 在Blend 的美工板上放置样本数据 / 423
12.6 小结 / 426
第13 章 使用Silverlight for WindowsPhone Tookit 并创建全景用户界面 / 429
13.1 Silverlight for Windows PhoneToolkit 概述 / 430
13.2 Silverlight for Windows PhoneToolkit 中的控件 / 430
13.2.1 AutoCompleteBox控件 / 431
13.2.2 DatePicker 控件 / 435
13.2.3 TimePicker 控件 / 436
13.2.4 ContextMenu 控件 / 437
13.3 Silverlight for Windows PhoneToolkit 的页面过渡 / 439
13.4 Silverlight for Windows PhoneToolkit 的手势 / 441
13.5 Panorama 控件 / 443
13.6 小结 / 448
第14 章 模式、框架和测试 / 451
14.1 使用模式 / 452
14.1.1 使用架构模式 / 452
14.1.2 使用MVVM 进行开发 / 453
14.1.3 关联视图和视图模型 / 454
14.1.4 更改通知需求 / 454
14.2 使用MVVM 框架 / 470
14.2.1 MVVM 框架的功能 / 471
14.2.2 寻找合适的框架 / 472
14.3 添加单元测试 / 472
14.3.1 手动单元测试 / 473
14.3.2 单元测试框架 / 475
14.3.3 模拟依赖关系 / 479
14.3.4 对MVVM 应用程序进行单元测试 / 480
14.3.5 测试驱动开发 / 480
14.4 小结 / 481
第15 章 发布应用程序 / 483
15.1 Marketplace 和App Hub / 483
15.2 加入App Hub / 484
15.2.1 完成身份验证过程 / 485
15.2.2 设置收款人信息 / 485
15.3 提交要发布的应用程序 / 486
15.3.1 上传XAP 文件 / 486
15.3.2 描述应用程序 / 487
15.3.3 添加插图 / 488
15.3.4 设定应用程序的价格 / 489
15.3.5 提交应用程序 / 489
15.4 测试应用程序 / 489
15.5 提供试用模式 / 490
15.6 增加应用程序的销量 / 493
15.6.1 Window Phone 7 的目标市场 / 494
15.6.2 制造深刻印象 / 495
15.6.3 散播消息 / 497
15.6.4 合适的价格 / 499
15.6.5 利用契机 / 499
15.6.6 获得反馈 / 500
15.7 小结 / 500
附录 练习题答案 / 503
