图书目录

目 录

第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