开发基础篇 3
第1章 概述 3
1.1 Windows Phone的技术特点 3
1.1.1 Windows Phone的发展 3
1.1.2 Windows Phone 8的出现 6
1.1.3 Windows Phone 8的新特性 6
1.2 Windows Phone的技术架构 8
1.2.1 Windows运行时 8
1.2.2 Windows Phone 8应用程序模型 9
第2章 开发环境 11
2.1 搭建开发环境 11
2.1.1 开发环境的要求 11
2.1.2 开发工具的安装 11
2.2 创建Windows Phone 8应用 12
2.2.1 创建Hello WindowsPhone项目 12
2.2.2 解析Hello Windows Phone应用 14
第3章 XAML简介 24
3.1 什么是XAML 24
3.2 XAML语法概述 25
3.2.1 XAML命名空间 25
3.2.2 声明对象 27
3.2.3 设置属性 28
3.2.4 标记扩展 33
3.2.5 事件 34
开发技术篇 37
第4章 常用控件 37
4.1 控件的基类 37
4.2 按钮(Button) 41
4.3 文本块(TextBlock) 43
4.4 文本框(TextBox) 46
4.5 边框(Border) 48
4.6 超链接(HyperlinkButton) 50
4.7 单选按钮(RadioButton) 51
4.8 复选框(CheekBox) 53
4.9 进度条(ProgressBar) 54
4.10 滚动区域(ScrollViewer) 59
4.11 列表框(ListBox) 63
4.12 滑动条(Slider) 65
4.13 菜单栏(ApplicationBar) 67
第5章 布局管理 71
5.1 网格布局(Grid) 71
5.2 堆放布局(StackPanel) 77
5.3 绝对布局(Canvas) 82
5.4 枢轴视图布局(Pivot) 86
5.5 全景视图布局(Panorama) 89
第6章 数据存储 94
6.1 独立存储 94
6.1.1 独立存储的介绍 94
6.1.2 使用独立存储设置(IsolatedStorageSettings) 95
6.1.3 使用独立存储文件(IsolatedStorageFile) 99
6.2 SQL Server CE数据库 106
6.2.1 创建数据表 106
6.2.2 创建数据库 107
6.2.3 增删改操作 108
6.2.4 实例:员工信息操作 108
第7章 图形动画 116
7.1 基本的图形 116
7.1.1 矩形(Rectangle) 117
7.1.2 椭圆(Ellipse) 118
7.1.3 直线(Line) 119
7.1.4 线形(Polyline) 119
7.1.5 多边形(Polygon) 120
7.1.6 路径(Path) 121
7.1.7 Geometry类和Brush类 122
7.2 使用位图编程 127
7.2.1 拉伸图像 127
7.2.2 裁切图像 127
7.2.3 动态生成图片 128
7.3 动画 132
7.3.1 动画编程中使用的类 133
7.3.2 偏移动画 136
7.3.3 旋转动画 137
7.3.4 缩放动画 138
7.3.5 倾斜动画 140
第8章 多媒体 142
8.1 MediaElement元素 142
8.1.1 MediaElement类的属性、事件和方法 142
8.1.2 MediaElement的状态 144
8.2 本地音频播放 146
8.3 网络音频播放 148
8.4 本地视频播放 151
8.5 网络视频播放 153
第9章 启动器与选择器 158
9.1 使用启动器 158
9.1.1 发邮件(EmailComposeTask) 159
9.1.2 打电话(PhoneCallTask) 160
9.1.3 搜索(SearchTask) 162
9.1.4 发送短信(SmscomposeTask) 162
9.1.5 启动浏览器(WebBrowserTask) 164
9.1.6 播放多媒体(MediaPlayerLanucher) 165
9.1.7 应用的详细情况(MarketPlaceDetailTask) 167
9.1.8 应用市场(MarketplaceHubTask) 168
9.1.9 当前应用在应用市场的信息(MarketplaceReviewTask) 169
9.1.10 应用市场搜索(MarketPlaceSearchTask) 170
9.1.11 地图(BingMapsTask) 171
9.1.12 地图方向(BingMapsDirectionsTask) 172
9.1.13 连接设置(ConnectionSettingsTask) 173
9.1.14 保存日程安排(SaveAppointmentTask) 175
9.1.15 诺基亚地图加载(MapDownloaderTask) 176
9.1.16 诺基亚地图(MapsTask) 176
9.1.17 地图方向(MapsDirectionsTask) 177
9.1.18 共享多媒体(ShareMediaTask) 177
9.1.19 共享链接(ShareLinkTask) 177
9.1.20 共享状态(ShareStatusTask) 177
9.2 使用选择器 178
9.2.1 照相机(CameraCaptureTask) 178
9.2.2 邮箱地址(EmailAddressChooserTask) 180
9.2.3 电话号码(PhoneNumberChooserTask) 181
9.2.4 选取图片(PhotoChooserTask) 183
9.2.5 保存邮箱地址(SaveEmailAddressTask) 184
9.2.6 保存电话号码(SavePhoneNumberTask) 185
9.2.7 游戏邀请(GameInviteTask) 186
9.2.8 保存铃声(SaveRingtoneTask) 187
9.2.9 添加钱包项目(AddWalletItemTask) 188
9.2.10 选择地址(AddressChooserTask) 190
9.2.11 保存手机联系人(SaveContactTask) 191
第10章 手机感应编程 193
10.1 加速器 193
10.1.1 加速器原理 193
10.1.2 使用加速器实例编程 198
10.2 触摸感应 201
10.2.1 Manipulation事件 201
10.2.2 应用示例:画图形 205
10.2.3 Touch.FrameReported事件实现多点触摸 209
10.2.4 应用实例:涂鸦板 213
10.3 电子罗盘 220
10.3.1 罗盘传感器原理 220
10.3.2 创建一个指南针应用 221
10.4 陀螺仪 224
10.4.1 陀螺仪原理 224
10.4.2 创建一个陀螺仪应用 225
10.5 语音控制 227
10.5.1 发音合成 227
10.5.2 语音识别 228
第11章 MVVM模式 234
11.1 MVVM模式简介 234
11.2 数据绑定 235
11.2.1 用元素值绑定 236
11.2.2 三种绑定模式 237
11.2.3 绑定值转换 238
11.2.4 绑定集合 242
11.3 Command的实现 249
11.4 Attached Behaviors的实现 254
11.5 MVVM Light Toolkit组件的使用 257
第12章 Silverlight Toolkit组件 264
12.1 自动完成文本框(AutoCompleteBox) 264
12.2 上下文菜单(ContextMenu) 268
12.3 日期采集器(DatePicker) 272
12.4 手势服务/监听(GestureService/GestureListener) 275
12.5 列表采集器(ListPicker) 279
12.6 列表选择框(LongListSelector) 281
12.7 页面转换(Page Transitions) 285
12.8 性能进度条(PerformanceProgressBar) 292
12.9 倾斜效果(TiltEffect) 292
12.10 时间采集器(TimePicker) 293
12.11 棒形开关(ToggleSwitch) 296
12.12 折叠容器(WrapPanel) 297
第13章 网络编程 299
13.1 HTTP协议网络编程 299
13.1.1 WebClient类和HttpWebRequest类 299
13.1.2 天气预报应用 304
13.2 使用Web Service进行网络编程 315
13.2.1 Web Service简介 316
13.2.2 在Windows Phone应用程序中调用Web Service 316
13.3 使用WCF Service进行网络编程 320
13.3.1 WCF Service简介 320
13.3.2 创建WCF Service 321
13.3.3 调用WCF Service 322
13.4 推送通知 325
13.4.1 推送通知简介 325
13.4.2 推送通知的分类 327
13.4.3 推送通知的实现 329
13.5 WebBrowser 336
第14章 异步编程与并行编程 340
14.1 异步编程模式简介 340
14.1.1 异步编程模型模式(APM) 340
14.1.2 基于事件的异步模式(EAP) 349
14.1.3 基于任务的异步模式(TAP) 352
14.2 任务异步编程 354
14.2.1 相关任务类介绍 354
14.2.2 async关键字和await关键字 356
14.2.3 创建Task任务 358
14.2.4 监视异步处理进度 360
14.3 多线程与并行编程 362
14.3.1 多线程介绍 362
14.3.2 线程 363
14.3.3 线程池 364
14.3.4 线程锁 365
14.3.5 同步事件和等待句柄 366
14.3.6 数据并行 368
14.3.7 任务并行 368
第15章 联系人和日程安排 372
15.1 系统联系人 372
15.1.1 Contacts类与Contact类 372
15.1.2 聚合数据源 373
15.1.3 联系人搜索 374
15.2 日程安排 376
15.2.1 Appointments类与Appointment类 376
15.2.2 日程安排查询 377
15.3 程序联系人存储 379
15.3.1 ContactStore类和StoredContact类 379
15.3.2 程序联系人的新增 381
15.3.3 程序联系人的查询 382
15.3.4 程序联系人的编辑 382
15.3.5 程序联系人的删除 383
15.3.6 实例演示联系人存储的使用 383
第16章 手机文件数据读写 388
16.1 手机存储卡数据 388
16.1.1 获取存储卡文件夹 388
16.1.2 获取存储卡文件 389
16.1.3 实例:读取存储卡信息 390
16.2 图片音频数据 392
16.2.1 获取手机图片和音频数据 393
16.2.2 保存图片到手机 393
16.2.3 保存和删除手机音频 394
16.3 应用程序本地数据 394
16.3.1 应用程序本地文件夹和文件 394
16.3.2 实例演示本地文件和文件夹的操作 396
16.3.3 获取安装包下的文件夹和文件 399
第17章 Socket编程 400
17.1 Socket编程介绍 400
17.1.1 Socket的相关概念 401
17.1.2 Socket通信的过程 403
17.2 .NET框架的Socket编程 404
17.2.1 Windows Phone 7.1中的Socket API 404
17.2.2 Socket示例:实现手机客户端和计算机服务器端的通信 407
17.3 Windows运行时的Socket编程 414
17.3.1 StreamSocket简介以及TCP Socket编程步骤 414
17.3.2 连接Socket 415
17.3.3 发送和接收消息 416
17.3.4 启动Socket监听 417
17.3.5 实例:模拟Socket通信过程 418
第18章 墓碑机制与后台任务 423
18.1 墓碑机制 423
18.1.1 执行模式概述 423
18.1.2 应用程序的生命周期 424
18.1.3 休眠状态和墓碑状态处理 425
18.2 后台文件传输 426
18.2.1 后台文件传输概述 427
18.2.2 后台传输策略 427
18.2.3 后台传输的API 428
18.2.4 后台传输编程步骤 429
18.2.5 后台文件传输实例 430
18.3 后台代理 437
18.3.1 后台代理简介 437
18.3.2 实现后台代理的API 437
18.3.3 后台代理不支持运行的API 438
18.3.4 后台代理的限制 439
18.3.5 后台任务实例 441
18.4 后台音频 443
18.4.1 后台音频概述 443
18.4.2 后台音频的API 444
18.4.3 后台音乐实例 445
18.5 计划通知 447
18.5.1 计划通知简介 447
18.5.2 计划通知的API 448
18.5.3 计划通知实例 448
18.6 后台定位 450
18.6.1 定位服务概述 450
18.6.2 后台运行事件 451
18.6.3 跟踪位置变化实例 451
第19章 蓝牙和近场通信 454
19.1 蓝牙 454
19.1.1 蓝牙原理 454
19.1.2 Windows Phone蓝牙技术 455
19.1.3 蓝牙编程类 456
19.1.4 查找蓝牙设备和对等项 457
19.1.5 蓝牙发送消息 458
19.1.6 蓝牙接收消息 459
19.1.7 实例:实现蓝牙程序对程序的传输 459
19.1.8 实例:实现蓝牙程序对设备的连接 463
19.2 近场通信 464
19.2.1 近场通信的介绍 464
19.2.2 近场通信编程类 465
19.2.3 发现近场通信设备 465
19.2.4 近场通信发布消息 466
19.2.5 近场通信订阅消息 467
19.2.6 实例:实现近场通信的消息发布订阅 467
第20章 响应式编程 471
20.1 观察者模式 471
20.1.1 观察者模式理论 471
20.1.2 观察者模式的实现 472
20.1.3 观察者模式的优缺点 473
20.1.4 观察者模式的使用场景 474
20.2 LINQ语法 474
20.2.1 LINQ查询的组成 475
20.2.2 LINQ的标准查询操作符 475
20.2.3 IEnumerable和IEnumerator的理解 477
20.3 .NET的响应式框架 479
20.3.1 响应式框架概述 479
20.3.2 IObserver<T>和IObservable<T> 479
20.3.3 IObservable和IEnumerable 480
20.4 在Windows Phone上实践响应式编程 480
20.4.1 事件联动模拟用户登录实例 481
20.4.2 网络请求实例 482
20.4.3 响应式线程实例 484
20.4.4 豆瓣搜索实例 485
第21章 C++编程 489
21.1 C++/CX语法 489
21.1.1 命名空间 489
21.1.2 基本的类型 490
21.1.3 类和结构 491
21.1.4 对象和引用计数 493
21.1.5 属性 494
21.1.6 接口 495
21.1.7 委托 496
21.1.8 事件 497
21.1.9 自动类型推导auto 499
21.1.10 Lambda表达式 499
21.1.11 集合 500
21.2 Windows运行时组件 500
21.2.1 Windows Phone 8支持的C++API 501
21.2.2 在项目中使用Windows运行时组件 501
21.3 使用标准C++ 505
21.3.1 标准C++与C++/CX的类型自动转换 505
21.3.2 标准C++与C++/CX的字符串的互相转换 505
21.3.3 标准C++与C++/CX的数组的互相转换 506
21.3.4 在Windows运行时组件中使用标准C++ 506
21.4 Direct3D 510
21.4.1 Direct3D简介 510
21.4.2 Direct3D重要概念 511
21.4.3 创建一个Direct3D项目 512
开发实例篇 523
第22章 普通应用实例 523
22.1 时钟 523
22.2 日历 528
22.3 统计图表 532
22.4 记事本 535
22.5 快速邮件 549
第23章 网络应用实例 557
23.1 RSS阅读器 557
23.2 博客园主页 561
23.3 网络留言板 564
23.4 快递100 570
第24章 记账本应用 588
24.1 记账本简介 588
24.2 对象序列化存储 588
24.3 记账本首页磁贴设计 593
24.4 添加一笔收入 595
24.5 添加一笔支出 598
24.6 月报表 601
24.7 年报表 604
24.8 查询记录 606
24.9 分类图表 607