第一篇 应用开发 2
第1章 Windows Phone平台预览 2
1.1 Windows Phone简介 2
1.1.1 概述 2
1.1.2 Windows Phone Mango新特性 5
1.2 Windows Phone编程概述 6
1.2.1 开发环境的搭建 7
1.2.2 开发框架与编程语言 8
1.2.3 第一个Windows Phone程序 10
1.2.4 Windows Phone程序剖析 11
1.2.5 应用程序的编译、部署和调试 14
1.2.6 xap文件介绍 15
第2章 Silverlight开发基础 16
2.1 Silverlight概述 16
2.2 XAML语法详解 16
2.2.1 XAML特性 16
2.2.2 XAML核心语法规则 17
2.3 Silverlight基本概念 19
2.3.1 布局系统 20
2.3.2 资源 22
2.3.3 绑定 24
2.3.4 绑定数据转换器 26
2.3.5 属性 27
2.3.6 模板与样式 28
2.4 Silverlight动画 30
2.4.1 Siverlight动画基本认识 30
2.4.2 Siverlight动画类型 30
2.4.3 Siverlight动画故事板 31
第3章 UI控件 36
3.1 Sliverlight控件 36
3.1.1 容器控件 36
3.1.2 基本控件 38
3.1.3 绘图控件 41
3.1.4 其他控件 44
3.2 枢轴控件 46
3.3 全景视图控件 48
3.4 自定义控件 49
3.4.1 改变外观 49
3.4.2 制作新控件 51
3.5 扩展控件 54
3.6 广告控件 56
第4章 应用程序的基本概念 60
4.1 应用程序的生命周期 60
4.1.1 应用程序的执行模型概述 60
4.1.2 执行模型中的事件及方法 60
4.2 程序框架与页面导航 63
4.3 页面间传值 64
4.4 系统主题 67
4.5 页面剖析 68
4.5.1 应用程序栏 68
4.5.2 系统托盘 72
4.5.3 屏幕旋转方向 73
4.5.4 物理硬件按钮 73
4.6 设备信息与状态的获取 74
4.7 添加资源 74
4.8 调用震动 76
第5章 应用程序的特性 77
5.1 瓷块 77
5.1.1 瓷块概述 77
5.1.2 ShellTile API方式操纵瓷块 79
5.1.3 ShellTileSchedule API方式操作瓷块 80
5.1.4 设置应用程序瓷块初始信息 81
5.2 启动器与选择器 82
5.2.1 启动器 82
5.2.2 选择器 83
5.3 后台代理 85
5.3.1 后台代理概述 85
5.3.2 后台代理范例 86
5.4 日程的访问 91
5.5 联系人的访问 92
第6章 数据存储与操作 94
6.1 瞬时性数据存储 94
6.1.1 页面状态 94
6.1.2 应用程序状态 96
6.2 持久性数据存储 97
6.2.1 隔离存储 97
6.2.2 本地数据库 100
6.3 基于云服务的数据存储 104
6.3.1 Windows Live SkyDrive 104
6.3.2 Windows Azure Services Platform 105
6.4 OData使用 106
第7章 网络通信 109
7.1 网络通信概述 109
7.2 网络通信类 110
7.2.1 HttpWebRequest类 110
7.2.2 WebClient类 112
7.3 套接字(Socket)编程 113
7.3.1 套接字概述 113
7.3.2 套接字编程实例 115
7.4 Web Services 116
第8章 推送通知 121
8.1 推送通知概述 121
8.1.1 Start屏幕与Live Tile 121
8.1.2 推送通知实现方式 123
8.2 推送通知的类型 124
8.2.1 Toast通知 124
8.2.2 Tile通知 130
8.2.3 Raw通知 131
第9章 传感器 133
9.1 加速度计 133
9.1.1 加速度计概述 133
9.1.2 获取加速度计传感器数据 134
9.1.3 加速度计传感器模拟器 136
9.2 罗盘 136
9.2.1 获取罗盘传感器数据 137
9.2.2 设备方向对罗盘数据的影响 138
9.2.3 校准罗盘传感器数据 139
9.3 陀螺仪 139
9.3.1 陀螺仪概述 139
9.3.2 获取陀螺仪传感器数据 139
9.4 组合运动API 141
9.4.1 组合运API概述 142
9.4.2 如何使用组合运动API 142
第10章 触摸 145
10.1 Touch原生触摸 145
10.2 Manipulation触摸 146
10.3 GestureListener手势 149
第11章 多媒体应用 153
11.1 播放音/视频 153
11.1.1 利用MediaPlayerLauncher启动器播放音/视频 153
11.1.2 利用MediaElement控件播放音/视频 155
11.2 相机 158
11.2.1 使用CameraCaptureTask调用相机 158
11.2.2 相机底层API的使用 159
11.2.3 使用相机摄像 160
11.3 录音 160
11.4 收音机 163
11.5 播放后台音频 164
11.5.1 后台音频概述 164
11.5.2 后台音频类型 164
11.6 保存铃声 166
第12章 地理位置服务 168
12.1 Windows Phone位置服务 168
12.1.1 位置服务体系 168
12.1.2 使用位置服务 168
12.1.3 使用位置服务的最佳实践 172
12.2 Bing Maps 173
12.2.1 使用Bing Maps API前的准备工作 173
12.2.2 Bing Maps API使用方法 173
第13章 应用程序的优化 177
13.1 Windows Phone中的线程 177
13.2 资源优化 178
13.2.1 图片资源 178
13.2.2 媒体文件 179
13.3 控件优化 179
13.4 其他优化 179
13.4.1 网络请求 179
13.4.2 应用程序启动 180
13.4.3 避免阻碍UI线程 180
13.5 优化测试工具及方法 181
13.5.1 Performance Analysis工具 181
13.5.2 Windows Phone模拟器中的帧速率计数器 181
第14章 应用程序的发布 184
14.1 Windows Phone商城 184
14.2 试用版应用程序 185
14.2.1 试用版应用程序概述 185
14.2.2 创建试用版应用程序 186
14.3 发布应用程序 188
第二篇 游戏开发 192
第15章 XNA里的Hello world 192
15.1 创建XNA游戏开发项目 192
15.2 游戏开发项目中的方法 194
15.3 调试和部署XNA项目 198
第16章 XNA制作2D游戏的常用组件 199
16.1 在项目里导入2D图片资源 199
16.2 使用SpriteBatch绘制2D纹理 201
16.3 使用ScreenManager管理游戏场景 205
第17章 创建XNA游戏菜单 210
17.1 WP7里XNA游戏的触控操作 210
17.2 编写MenuEntry类 211
17.3 编写MenuScreen类 213
17.4 编写MainMenuScreen类 215
第18章 XNA里的2D动画 217
18.1 播放游戏精灵动画 217
18.2 游戏精灵的矢量移动 220
18.3 制作可控的游戏精灵 222
第19章 XNA里2D动画进阶 224
19.1 游戏精灵的动画切换 224
19.2 游戏精灵的碰撞计算 228
第20章 XNA里播放音效 233
20.1 使用SoundEffect播放音效 233
20.2 SoundEffect.Play()的重载 234
20.3 使用SoundEffectInstance播放背景音乐 235
第21章 XNA里2D粒子效果 237
21.1 粒子类Particle 237
21.2 粒子系统类ParticleSystem 239
21.3 粒子系统在游戏中的应用 246
第22章 游戏场景的暂停和保存 250
22.1 GameSettings类 250
22.2 游戏场景的暂停 251
22.3 使用XML和IsolatedStorage保存游戏数据 253
第23章 XNA里3D游戏入门 257
23.1 如何载入3D模型 257
23.2 缩放模型 260
23.3 处理模型动画 260