第1章 准备工作 1
1.1 安装Windows Phone SDK 2
1.2 初试Windows Phone应用程序开发 2
1.3 了解Windows Phone应用程序项目的目录和文件结构 4
1.4 了解清单文件 5
1.5 入口点Main()到哪里去了 8
1.6 练习题 8
第2章 整体认识Windows Phone 9
2.1 通过输出调试信息掌握Windows Phone应用程序的生命周期 10
2.2 如何进行导航 14
2.3 处理导航相关的事件 15
2.4 在页面之间传递数据 16
2.5 URI映射 18
2.6 在导航中“前进”或“后退” 22
2.7 必要时屏蔽“回退”键 24
2.8 在导航历史中移除记录 25
2.9 保存和恢复应用程序状态 26
2.10 保存和恢复页面状态 29
2.11 练习题 32
第3章 用户界面与布局 33
3.1 设置Grid的行和列 34
3.2 在Grid中进行布局 35
3.3 在Grid中跨行或跨列布局 37
3.4 在Grid的单元格中定位 39
3.5 使用StackPanel排列子元素 42
3.6 在Canvas中精确布局子元素 43
3.7 在Canvas中使用Z-Index 44
3.8 在Grid中使用Canvas.ZIndex附加属性进行布局 45
3.9 如何嵌套使用布局控件 46
3.10 练习题 48
第4章 控件 49
4.1 在TextBlock中显示文本 50
4.2 改变TextBlock中文本的颜色 51
4.3 设置TextBlock中文本的字体 52
4.4 在TextBlock中换行——LineBreak元素的使用 53
4.5 将TextBlock的部分文本设置为斜体——Italic元素的使用 54
4.6 突出显示TextBlock的部分文本——Bold元素的使用 54
4.7 带渐变颜色的文字 55
4.8 灵活运用Run元素 58
4.9 事件处理 59
4.10 多个按钮共用一个事件处理程序 61
4.11 自定义Button的Content属性 63
4.12 使用图片作为控件背景 67
4.13 使用Border控件 68
4.14 你喜欢吃哪些蔬菜——checkBox控件的使用 69
4.15 请选择您的性别——RadioButton控件的使用 71
4.16 HyperlinkButton让页面导航更轻松 72
4.17 我的图集——用Image控件显示图片 73
4.18 秀一下您的绘画天赋——关于InkPresenter的那些事 75
4.19 使用资源设置控件的属性 79
4.20 轻松统一应用程序的UI风格——样式的运用 80
4.21 呈现只读列表——ItemsControl控件 82
4.22 使页面支持屏幕翻转 83
4.23 根据屏幕方向的改变重新布局UI 85
4.24 弹出提示对话框 87
4.25 人机互动,让用户也能输入内容——TextBox控件 88
4.26 此处只能输入日期和数字 90
4.27 我的日程表——Pivot控件的使用 92
4.28 你平均每月要花多少钱——Slider控件的使用 94
4.29 通过XAML向ListBox中添加项 95
4.30 通过设置数据源的方式向ListBox中添加项 96
4.31 改变控件的透明度——Opacity属性的使用 97
4.32 显示大尺寸图片——ScrollViewer控件的用法 98
4.33 重复引发Click事件——RepeatButton控件 99
4.34 触控操作——ManipulationDelta事件 100
4.35 请输入密码——PasswordBox控件 102
4.36 报告处理进度——ProgressBar控件 103
4.37 在应用程序界面上呈现HTML页 105
4.38 用户控件实例——MyLoginControl 108
4.39 让控件“酷”起来——自定义控件模板 111
4.40 练习题 115
第5章 应用程序与系统信息 116
5.1 自定义应用程序图标 117
5.2 自定义应用程序的启动屏幕背景 118
5.3 将指定页面设置为启动页 119
5.4 修改您的应用程序信息 120
5.5 判断应用程序是在真实设备上运行还是在设备模拟器上运行 120
5.6 获取设备和设备制造商的名称 122
5.7 获取手机设备的物理内存大小 123
5.8 获取当前应用程序的内存使用情况 124
5.9 判断手机是否正在充电 126
5.10 判断是否启用了Wi-Fi网络 127
5.11 获得网络接口的配置信息 128
5.12 获取应用程序的启动模式 132
5.13 显示和隐藏当前应用程序页上的系统托盘 133
5.14 改变当前页上系统托盘的前景色和背景色 134
5.15 应用程序栏实例 134
5.16 在“开始”屏幕创建次要磁贴 137
5.17 更新磁贴信息 139
5.18 通过编辑清单文件来修改应用程序磁贴的初始属性 142
5.19 实现后台代理 143
5.20 实现后台播放音频 147
5.21 使用StreamResourceInfo读取应用程序资源 155
5.22 全球化简单应用 157
5.23 如何创建具有位置感知服务的应用程序 158
5.24 传感器的简单应用 162
5.25 获取电池状态信息 167
5.26 语音识别简单实例 168
5.27 练习题 170
第6章 启动器与选择器 171
6.1 明天去哪里玩——SmsComposeTask 172
6.2 如何在应用程序中拨打电话 173
6.3 发送电子邮件 175
6.4 邀请您的朋友一起来玩游戏吧 177
6.5 使用PhoneNumberChooserTask选择联系人电话号码 180
6.6 调用“网络连接设置”程序 181
6.7 启动Web搜索组件 183
6.8 调用媒体播放器 184
6.9 从手机中选择并显示照片 186
6.10 在应用程序中保存联系人信息 188
6.11 允许用户把喜欢的铃声存起来 190
6.12 启动Web浏览器并显示指定的URI 192
6.13 练习题 194
第7章 网络通信与推送通知服务 195
7.1 Socket应用——手机与计算机之间进行通信 196
7.2 向Web服务器发出HTTP请求并接收响应 206
7.3 使用WebClient向服务器提交数据 209
7.4 使用WebClient从服务器获取数据 214
7.5 发送和接收Toast通知 215
7.6 发送和接收磁贴通知 223
7.7 发送和接收Raw通知 231
7.8 访问Web服务 236
7.9 练习题 240
第8章 独立存储与I/O 241
8.1 在独立存储中创建和删除文件夹 242
8.2 在独立存储中读写文件 246
8.3 复制和移动文件 248
8.4 移动文件夹及其子内容 251
8.5 获取文件的基本信息 254
8.6 在独立存储中存取应用程序设置 256
8.7 对文本进行HMACSHA1加密 259
8.8 练习题 260
第9章 数据绑定和本地数据库 261
9.1 绑定数据源 262
9.2 将其他XAML元素用作数据源 265
9.3 自定义数据模板 266
9.4 使用转换器 268
9.5 LINQ简单实例 271
9.6 LINQ中的筛选 273
9.7 使用join子句 275
9.8 使用group子句 278
9.9 orderby子句 280
9.10 创建本地数据库 282
9.11 使用LINQ操作数据库 287
9.12 练习题 297
第10章 图形、动画与多媒体 298
10.1 使用矩形 299
10.2 使用椭圆 301
10.3 绘制直线 303
10.4 绘制闭合图形 304
10.5 绘制路径 305
10.6 路径标记语法 307
10.7 图像笔刷 309
10.8 渐变笔刷 311
10.9 将屏幕内容保存为图片 315
10.10 使用MediaElement播放多媒体 316
10.11 将视频用作笔刷——VideoBrush 320
10.12 制作淡入/淡出动画效果 321
10.13 控制动画的播放、暂停和停止 324
10.14 让矩形产生位移动画 326
10.15 制作旋转动画 328
10.16 制作缩放动画 329
10.17 神奇变色盒——如何使用颜色动画 331
10.18 缓动动画函数 332
10.19 关键帧动画 335
10.20 带缓动函数的关键帧动画 344
10.21 练习题 348
第11章 综合实例 349
11.1 简易手机录音机 350
11.2 国内飞机航班时刻表查询工具 365
11.3 在线英汉小词典 375