第1章 准备工作 1
1.1 安装Visual Studio开发环境 1
1.2 Visual Studio个性设置 1
1.2.1 选择颜色主题 2
1.2.2 设置字体 3
1.2.3 设置启动界面 4
1.2.4 设置项目的默认存放路径 5
1.2.5 用好“快速启动”功能 5
1.3 通用应用 6
1.3.1 新的XAML设计器 9
1.3.2 如何使用特定平台的API 9
1.4 使用帮助文档和示例代码 12
第2章 了解应用程序项目 14
2.1 应用程序项目的文件结构 14
2.2 应用程序入口点 15
2.3 应用程序生命周期 16
2.3.1 Application类 16
2.3.2 挂起与恢复 20
2.3.3 处理前台与后台之间的切换 26
2.3.4 预启动 28
2.4 清单文件 29
第3章 页面导航 32
3.1 实现导航 32
3.2 导航事件 34
3.3 传递导航参数 38
3.4 管理导航记录 40
3.5 处理手机上的“后退”键 46
3.6 缓存页面实例 48
3.7 保存和恢复导航状态 51
第4章 排版布局 53
4.1 网格布局 53
4.2 栈布局 57
4.3 按坐标布局 58
4.4 Z顺序 60
4.5 对齐方式 62
4.6 边距 65
4.7 自适应布局 66
4.8 自适应触发器 69
第5章 控件 72
5.1 Control类 72
5.1.1 控件模板 73
5.1.2 控件状态 76
5.1.3 获取控件的状态列表的技巧 79
5.2 路由事件 81
5.3 按钮 85
5.3.1 Button 85
5.3.2 RepeatButton 86
5.3.3 HyperlinkButton 88
5.4 单选框与多选框 89
5.5 呈现静态文本 91
5.5.1 TextBlock 91
5.5.2 RichTextBlock 93
5.5.3 处理文本溢出 95
5.5.4 嵌入自定义字体 99
5.6 显示图像 99
5.7 文本输入控件 103
5.7.1 TextBox 103
5.7.2 RichEditBox 106
5.8 选取日期和时间 108
5.9 ViewBox控件 110
5.10 报告进度 111
5.10.1 ProgressBar 111
5.10.2 ProgressRing 112
5.11 对话框 113
5.11.1 MessageDialog 113
5.11.2 ContentDialog 116
5.12 上下文菜单 120
5.12.1 PopupMenu 120
5.12.2 MenuFlyout 121
5.13 应用程序栏 123
5.14 命令 125
5.15 开关控件 127
5.16 滑动条 128
5.17 用户控件 129
5.18 自定义控件 132
5.19 WebView控件 139
5.19.1 呈现HTML内容 139
5.19.2 执行脚本函数 140
5.19.3 捕捉HTML内容 144
5.20 SplitView控件 145
5.21 墨迹处理 149
第6章 数据视图 153
6.1 数据绑定 153
6.1.1 绑定方向 153
6.1.2 Binding类 154
6.1.3 Binding扩展标记 156
6.1.4 数据绑定的继承性 158
6.1.5 转换器 160
6.1.6 更改通知 162
6.2 ItemsControl控件 166
6.3 DisplayMemberPath与SelectedValuePath 167
6.4 数据模板 170
6.4.1 自定义数据模板 170
6.4.2 数据模板选择器 172
6.5 分组视图 176
6.6 自定义数据项的布局 181
6.7 缩放视图 183
6.8 Pivot与Hub 187
6.8.1 Pivot控件示例 187
6.8.2 Hub控件示例 188
6.9 FlipView控件 191
6.10 增量加载 192
6.11 直接绑定到方法 197
第7章 图形 200
7.1 构造图形的基础元素 200
7.2 画刷 201
7.2.1 单色画刷(SolidColorBrush) 201
7.2.2 线性渐变画刷(LinearGradientBrush) 202
7.2.3 图像画刷(ImageBrush) 204
7.3 基本图形 205
7.3.1 直线(Line) 205
7.3.2 椭圆(Ellipse) 206
7.3.3 矩形(Rectangle) 207
7.3.4 折线(Polyline) 208
7.3.5 多边形(Polygon) 209
7.4 路径 210
7.4.1 LineGeometry 210
7.4.2 RectangleGeometry 210
7.4.3 E1lipseGeometry 213
7.4.4 PathGeometry 214
7.4.5 GeometryGroup 216
7.5 二维变换 216
7.5.1 平移(TranslateTransform) 216
7.5.2 旋转(RotateTransform) 217
7.5.3 缩放(ScaleTransform) 218
7.5.4 复合变换(CompositeTransform) 219
7.5.5 使用相对定位的变换原点 220
7.6 三维透视 221
7.7 三维变换 222
第8章 动画 225
8.1 动画概要 225
8.1.1 时间线 225
8.1.2 演示图板(Storyboard) 226
8.1.3 动画分类 226
8.1.4 如何与动画时间线关联 227
8.2 控制动画播放行为 231
8.3 简单动画 233
8.4 关键帧动画 235
8.5 属性路径 238
第9章 图像 241
9.1 用于UI的图像加载 241
9.2 将可视化对象呈现为图像 243
9.3 可写位图(WriteableBitmap) 244
9.4 图像的解码与编码 246
9.4.1 图像解码 246
9.4.2 图像编码 249
9.5 图像处理 253
9.6 人脸检测 256
第10章 多媒体 262
10.1 MediaElement与多媒体播放 262
10.2 后台音频 264
10.3 转码 271
10.4 多媒体捕捉 274
10.5 捕捉屏幕 279
第11章 启动与激活 284
11.1 Launcher组件 284
11.2 自定义文件关联 287
11.3 协议激活 291
11.4 激活远程系统上的应用 296
第12章 文件与数据 301
12.1 文件与目录 301
12.1.1 文件/目录操作的相关类型 301
12.1.2 读写本地文件 302
12.1.3 FileIO与PathIO 304
12.1.4 DataWriter与DataReader 306
12.1.5 访问特殊目录 309
12.2 应用设置 311
12.3 访问可移动存储 315
12.4 文件与目录选择器 317
12.5 StorageApplicationPermissions类 321
12.6 XML与JSON数据处理 324
12.6.1 读写XML 324
12.6.2 操作JSON数据 326
12.7 数据共享 328
12.7.1 剪贴板 329
12.7.2 向其他应用程序共享数据 330
12.7.3 接收共享数据 332
12.8应用程序服务 335
第13章 网络通信 342
13.1 Socket通信 342
13.1.1 基于UDP协议的通信 343
13.1.2 通过TCP协议传输数据 347
13.2 访问Web服务 352
13.3 HTTP协议通信 354
13.4 后台传输 355
13.5 推送通知 361
13.6 访问RSS资源 369
13.7 扫描Wi-Fi网络 372
第14章 传感器与地理定位 376
14.1 设备坐标 376
14.2 传感器的使用方法 376
14.3 罗盘 377
14.4 加速度传感器 380
14.5 磁倾仪 382
14.6 陀螺仪 384
14.7 光感器 385
14.8 方向传感器 386
14.9 高度计 387
14.10 气压计 389
14.11 获取电池信息 390
14.12 获取地理位置 390
第15章 语音技术 393
15.1 语音识别 393
15.2 自定义语音识别规则 395
15.2.1 自定义SGRS文件 396
15.2.2 短语列表约束 400
15.3 语音指令 401
15.4 语音朗读 406
15.5 Cortana与应用程序的后台交互 408