《深入浅出 Windows 10通用应用开发》PDF下载

  • 购买积分:19 如何计算积分?
  • 作  者:林政著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2016
  • ISBN:9787302416388
  • 页数:694 页
图书介绍:本书对Windows 10 Universal应用开发的知识进行了详细的讲解,深入地解剖Windows 10的各种各样的编程技术,从原理到实践到应用都进行了深入的探讨和讲解。详细讲解了Windows 10开发的XAML原理、控件编程、数据存储、网络编程、界面原理、样式模板、图形绘图、图表编程、动画编程、列表编程和控件编程等实用性非常强的知识。

开发基础篇 3

第1章 综述 3

1.1 Windows 10的改变与发展机遇 3

1.1.1 Windows 10新特性 3

1.1.2 Windows 10手机版本 5

1.1.3 Windows 10 PC版本 7

1.1.4 Windows 10物联网版本 8

1.1.5 Windows 10对于开发者的机遇 8

1.2 Windows 10技术框架 9

1.2.1 Windows运行时 10

1.2.2 Windows 10通用应用平台 10

1.2.3 Windows 10通用应用程序开发模型 11

第2章 开发环境和项目工程解析 13

2.1 搭建开发环境 13

2.1.1 开发环境的要求 13

2.1.2 开发工具的安装 13

2.2 创建Windows 10通用应用 14

2.2.1 创建Hello World项目 14

2.2.2 解析Hello World应用 19

2.3 不同平台设备的适配 27

2.3.1 特定平台的API调用 27

2.3.2 界面适配 32

第3章 XAML界面原理和语法 33

3.1 理解XAML 33

3.2 XAML语法 34

3.2.1 命名空间 34

3.2.2 对象元素 36

3.2.3 设置属性 36

3.2.4 附加属性 40

3.2.5 标记扩展 40

3.2.6 事件 41

3.3 XAML的原理 41

3.3.1 XAML页面的编译 41

3.3.2 动态加载XAML 43

3.4 XAML的树结构 46

3.4.1 可视化树 46

3.4.2 Visual TreeHelper类 47

3.4.3 遍历可视化树 48

3.5 框架和页面 50

3.5.1 框架页面结构 50

3.5.2 页面导航 50

开发提高篇 55

第4章 控件编程 55

4.1 系统控件分类 55

4.2 按钮(Button) 58

4.3 文本块(TextBlock) 60

4.4 文本框(TextBox) 63

4.5 边框(Border) 66

4.6 超链接(HyperlinkButton) 68

4.7 单选按钮(RadioButton) 69

4.8 复选框(CheckBox) 70

4.9 进度条(ProgressBar) 72

4.10 滚动视图(ScrollViewer) 74

4.11 滑动条(Slider) 77

4.12 时间选择器(TimePicker)和日期选择器(DatePicker) 79

4.13 枢轴控件(Pivot) 81

4.14 全景视图控件(Hub) 83

4.15 浮出控件(Flyout) 85

4.16 下拉框(ComboBox) 90

4.17 命令栏/菜单栏(CommandBar) 92

4.18 分屏控件(SplitView) 96

第5章 布局管理 99

5.1 布局属性和面板 99

5.1.1 布局的通用属性 99

5.1.2 网格布局(Grid) 105

5.1.3 堆放布局(StackPanel) 111

5.1.4 绝对布局(Canvas) 115

5.1.5 相对布局(RelativePanel) 119

5.1.6 多分辨率的适配布局 120

5.2 布局原理 125

5.2.1 布局的意义 125

5.2.2 布局系统 126

5.2.3 布局系统的重要方法和属性 126

5.2.4 测量和排列的过程 128

5.3 自定义布局规则 131

5.3.1 创建布局类 132

5.3.2 实现测量过程 133

5.3.3 实现排列过程 134

5.3.4 应用布局规则 135

第6章 应用数据 137

6.1 应用设置存储 137

6.1.1 应用设置简介 137

6.1.2 应用设置操作 138

6.1.3 存储容器设置 142

6.1.4 复合设置数据 145

6.2 应用文件存储 147

6.2.1 三种类型的应用文件 147

6.2.2 应用文件和文件夹操作 148

6.2.3 文件Stream和Buffer读写操作 154

6.2.4 应用文件的URI方案 160

6.3 常用的存储数据格式 163

6.3.1 JSON数据序列化存储 163

6.3.2 XML文件存储 170

6.4 安装包文件数据 180

6.4.1 安装包文件访问 180

6.4.2 安装包文件的URI方案 184

第7章 图形绘图 186

7.1 图形基础 186

7.1.1 图形中常用的结构 186

7.1.2 画图相关的类 187

7.1.3 基础的图形形状 189

7.2 Path图形 192

7.2.1 两种Path图形的创建方法 192

7.2.2 使用简单的几何图形来创建Path 192

7.2.3 使用PathGeometry来创建Path 195

7.2.4 使用路径标记语法创建Path 200

7.2.5 使用Path实现自定义图形 204

7.2.6 利用Expression Blend工具创建Path图形 206

7.3 画刷 210

7.3.1 SolidColorBrush画刷 210

7.3.2 LinearGradientBrush画刷 210

7.3.3 ImageBrush画刷 211

7.4 图形裁剪 212

7.4.1 使用几何图形进行剪裁 212

7.4.2 对布局区域进行剪裁 212

7.5 使用位图编程 215

7.5.1 拉伸图像 215

7.5.2 使用RenderTargetBitmap类生成图片 215

7.5.3 存储生成的图片文件 217

第8章 变换特效和三维特效 220

8.1 变换特效 220

8.1.1 变换的原理二维变换矩阵 220

8.1.2 平移变换(TranslateTransform) 222

8.1.3 旋转变换(RotateTransform) 222

8.1.4 缩放变换(ScaleTransform) 224

8.1.5 扭曲变换(SkewTransform) 225

8.1.6 组合变换(TransformGroup) 225

8.1.7 矩阵变换(MatrixTransform) 226

8.2 三维特效 229

8.2.1 三维坐标体系 229

8.2.2 三维旋转 229

8.2.3 三维平移 232

8.2.4 用矩阵实现三维特效 235

第9章 动画编程 239

9.1 动画原理 239

9.1.1 理解动画 239

9.1.2 动画的目标属性 240

9.1.3 动画的类型 241

9.2 线性插值动画 242

9.2.1 动画的基本语法 242

9.2.2 线性动画的基本语法 243

9.2.3 DoubleAnimation实现变换动画 247

9.2.4 ColorAnimation实现颜色渐变动画 248

9.2.5 PointAnimation实现Path图形动画 249

9.3 关键帧动画 251

9.3.1 关键帧动画简介 251

9.3.2 线性关键帧 253

9.3.3 样条关键帧 255

9.3.4 离散关键帧 258

9.4 缓动函数动画 264

9.4.1 缓动函数动画简介 264

9.4.2 BackEase动画 264

9.4.3 BounceEase动画 267

9.4.4 CircleEase动画 269

9.4.5 CubicEase动画 271

9.4.6 ElasticEase动画 272

9.4.7 ExponentialEase动画 274

9.4.8 PowerEase/QuadraticEase/QuarticEase/QuinticEase动画 277

9.4.9 SineEase动画 279

9.5 基于帧动画 280

9.5.1 基于帧动画的原理 281

9.5.2 基于帧动画的应用场景 281

9.5.3 基于帧动画的实现 282

9.6 动画方案的选择 283

9.6.1 帧速率 284

9.6.2 UI线程和构图线程 284

9.6.3 选择最优的动画方案 285

9.7 模拟实现微信的彩蛋动画 288

9.7.1 实现的思路 288

9.7.2 星星创建工厂 288

9.7.3 实现单个星星的动画轨迹 293

9.7.4 封装批量星星飘落的逻辑 296

9.7.5 星星飘落动画演示 298

第10章 样式和模板 300

10.1 样式 300

10.1.1 创建样式 300

10.1.2 样式继承 302

10.1.3 以编程方式设置样式 303

10.1.4 样式文件 305

10.2 模板 307

10.2.1 控件模板(ControlTemplate) 307

10.2.2 ContentControl和ContentPresenter 308

10.2.3 视觉状态管理(VisualStatesManager) 309

10.2.4 数据模板(DataTemplate) 312

10.2.5 Item Template、Content Template和Data Template 313

10.2.6 数据模板的使用 313

10.2.7 读取和更换数据模板 315

第11章 数据绑定 319

11.1 数据绑定的基础 319

11.1.1 数据绑定的原理 319

11.1.2 创建绑定 320

11.1.3 用元素值绑定 322

11.1.4 三种绑定模式 324

11.1.5 更改通知 325

11.1.6 绑定数据转换 327

11.2 绑定集合 332

11.2.1 数据集合 332

11.2.2 绑定列表控件 333

11.2.3 绑定ObservableCollection<T>集合 335

11.2.4 绑定自定义集合 337

第12章 列表编程 342

12.1 列表控件的使用 342

12.1.1 ItemsControl实现最简洁的列表 342

12.1.2 ListBox实现下拉点击刷新列表 345

12.1.3 ListView实现下拉自动刷新列表 348

12.1.4 GridView实现网格列表 351

12.1.5 SemanticZoom实现分组列表 352

12.2 虚拟化技术 358

12.2.1 列表的虚拟化 358

12.2.2 VirtualizingStackPanel、ItemsStackPanel和ItemsWrapGrid虚拟化排列布局控件 360

12.2.3 实现横向虚拟化布局 362

12.2.4 大数据量网络图片列表的异步加载和内存优化 365

第13章 图表编程 370

13.1 动态生成折线图和区域图 370

13.1.1 折线图和区域图原理 370

13.1.2 生成图形逻辑封装 372

13.2 实现饼图控件 376

13.2.1 自定义饼图片形状 376

13.2.2 封装饼图控件 382

13.3 线性报表 387

13.3.1 实现图形表格和坐标轴 387

13.3.2 定义线性数据图形类 394

13.3.3 实现图例 397

13.3.4 实现线性报表 399

13.4 QuickCharts图表控件库解析 401

13.4.1 QuickCharts项目结构分析 402

13.4.2 饼图图表PieChart的实现逻辑 404

13.4.3 连续图形图表SerialChart的实现逻辑 409

开发进阶篇 415

第14章 网络编程 415

14.1 网络编程之HttpWebRequest类 415

14.1.1 HttpWebRequest实现Get请求 415

14.1.2 HttpWebRequest实现Post请求 418

14.1.3 网络请求的取消 420

14.1.4 超时控制 420

14.1.5 断点续传 421

14.1.6 实例演示:RSS阅读器 421

14.2 网络编程之HttpClient类 429

14.2.1 Get请求获取字符串和数据流数据 429

14.2.2 Post请求发送字符串和数据流数据 430

14.2.3 设置和获取Cookie 431

14.2.4 网络请求的进度监控 432

14.2.5 自定义HTTP请求筛选器 432

14.2.6 实例演示:部署IIS服务和实现客户端对服务器的请求 434

14.3 使用Web Service进行网络编程 447

14.3.1 Web Service简介 447

14.3.2 实例演示:手机号码归属地查询 448

14.4 使用WCF Service进行网络编程 450

14.4.1 WCF Service简介 451

14.4.2 创建WCF Service 451

14.4.3 调用WCF Service 454

14.5 推送通知 455

14.5.1 推送通知的原理和工作方式 455

14.5.2 推送通知的分类 457

14.5.3 推送通知的发送机制 459

14.5.4 客户端程序实现推送通知的接收 468

第15章 Socket编程 471

15.1 Socket编程简介 471

15.1.1 Socket相关概念 472

15.1.2 Socket通信的过程 474

15.2 Socket编程之TCP协议 475

15.2.1 StreamSocket介绍及TCP Socket编程步骤 475

15.2.2 连接Socket 477

15.2.3 发送和接收消息 477

15.2.4 TCP协议服务器端监听消息 478

15.2.5 实例:模拟TCP协议通信过程 480

15.3 Socket编程之UDP协议 485

15.3.1 发送和接收消息 485

15.3.2 UDP协议服务器端监听消息 486

15.3.3 实例:模拟UDP协议通信过程 487

第16章 蓝牙和近场通信 491

16.1 蓝牙 491

16.1.1 蓝牙原理 491

16.1.2 Windows 10蓝牙技术简介 492

16.1.3 蓝牙编程类 493

16.1.4 查找蓝牙设备和对等项 494

16.1.5 蓝牙发送消息 495

16.1.6 蓝牙接收消息 496

16.1.7 实例:实现蓝牙程序对程序的传输 496

16.1.8 实例:实现蓝牙程序对设备的连接 500

16.2 近场通信 503

16.2.1 近场通信的介绍 503

16.2.2 近场通信编程类和编程步骤 504

16.2.3 发现近场通信设备 505

16.2.4 近场通信发布消息 506

16.2.5 近场通信订阅消息 507

16.2.6 实例:实现近场通信的消息发布订阅 507

第17章 联系人存储 511

17.1 联系人数据存储 511

17.1.1 ContactStore类和StoredContact类 511

17.1.2 联系人新增 513

17.1.3 联系人查询 515

17.1.4 联系人编辑 515

17.1.5 联系人删除 516

17.1.6 联系人头像 516

17.1.7 实例演示:联系人存储的使用 518

17.2 联系人编程技巧 523

17.2.1 vCard的运用 523

17.2.2 RemoteID的运用 527

第18章 多任务 530

18.1 后台任务 530

18.1.1 后台任务的原理 530

18.1.2 后台任务的资源限制 531

18.1.3 后台任务的基本概念和相关的类 532

18.1.4 后台任务的实现步骤和调试技巧 535

18.1.5 使用MaintenanceTrigger实现Toast通知 543

18.1.6 使用后台任务监控锁屏Raw消息的推送通知 546

18.1.7 后台任务的开销、终止原因和完成进度汇报 546

18.2 后台文件传输 553

18.2.1 后台文件传输简介 553

18.2.2 后台文件下载步骤 553

18.2.3 后台文件下载的实例编程 555

18.2.4 后台文件上传的实现 563

第19章 应用间通信 565

19.1 启动系统内置应用 565

19.1.1 启动内置应用的URI方案 565

19.1.2 实例演示:打开网页、拨打电话和启动设置页面 566

19.2 URI关联的应用 569

19.2.1 注册URI关联 569

19.2.2 监听URI 570

19.2.3 启动URI关联的应用 571

19.2.4 实例演示:通过URI关联打开不同的应用页面 571

19.3 文件关联的应用 574

19.3.1 注册文件关联 574

19.3.2 监听文件启动 575

19.3.3 启动文件关联应用 575

19.3.4 实例演示:创建一个.log后缀的文件关联应用 576

第20章 多媒体 581

20.1 MediaElement对象 581

20.1.1 MediaElement类的属性、事件和方法 582

20.1.2 MediaElement的状态 583

20.2 本地音频播放 584

20.3 网络音频播放 586

20.4 使用SystemMediaTransportControls控件播放音乐 589

20.5 本地视频播放 591

20.6 网络视频播放 594

第21章 地理位置 599

21.1 定位和地图 599

21.1.1 获取定位信息 599

21.1.2 在地图上显示位置信息 601

21.1.3 跟踪定位的变化 603

21.1.4 后台定位 607

21.2 地理围栏 613

21.2.1 设置地理围栏 614

21.2.2 监听地理围栏通知 614

第22章 C#与C++混合编程 619

22.1 C++/CX语法 619

22.1.1 命名空间 619

22.1.2 基本的类型 620

22.1.3 类和结构 621

22.1.4 对象和引用计数 624

22.1.5 属性 624

22.1.6 接口 625

22.1.7 委托 626

22.1.8 事件 628

22.1.9 自动类型推导auto 629

22.1.10 Lambda表达式 629

22.1.11 集合 630

22.2 Windows运行时组件 631

22.2.1 在项目中使用Windows运行时组件 631

22.2.2 Windows运行时组件异步接口的封装 635

22.3 使用标准C++ 640

22.3.1 标准C++与C++/CX的类型自动转换 640

22.3.2 标准C++与C++/CX的字符串的互相转换 640

22.3.3 标准C++与C++/CX的数组的互相转换 641

22.3.4 在Windows运行时组件中使用标准C++ 642

开发实例篇 649

第23章 应用实战:Bing在线壁纸 649

23.1 应用实现的功能 649

23.2 获取Bing壁纸的网络接口 649

23.3 壁纸请求服务的封装 651

23.4 应用首页的设计和实现 656

23.5 手机和平板不同分辨率的适配 660

23.6 壁纸列表详情和操作的实现 662

第24章 应用实战:记账本 667

24.1 记账本简介 667

24.2 对象序列化存储 667

24.3 记账本首页磁贴设计 670

24.4 添加一笔收入和支出 675

24.5 月报表 683

24.6 年报表 687

24.7 查询记录 690

24.8 分类图表 692