第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 Windows Phone Tookit并创建全景用户界面 429
13.1 Silverlight for Windows Phone Toolkit概述 430
13.2 Silverlight for Windows Phone Toolkit中的控件 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 Phone Toolkit的页面过渡 439
13.4 Silverlight for Windows Phone Toolkit的手势 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