本书是知名技术专家林政的新著作,全书用700多页的篇幅全面论述了Windows 10开发的几乎所有细节。书中实例的完整代码到清华大学出版社网站本书页面下载。
《深入浅出:Windows 10通用应用开发》系统论述了Windows 10操作系统的基本架构、开发方法和项目实战,由浅入深地介绍了Windows 10通用应用程序(可运行于手机、平板、PC、智能硬件、Xbox、HoloLens等)的开发知识。全书共分为四篇: 开发基础篇(第1~3章)、开发提高篇(第4~13章)、开发进阶篇(第14~22章)和开发实例篇(第23~24章)。本书全面详尽地论述了Windows 10通用应用程序开发的全方位技术,包括Windows 10技术架构、开发环境和项目解析、XAML语法和原理、控件编程、布局管理、应用数据、动画编程、列表编程、图表编程、数据绑定、网络编程、Socket编程、蓝牙和近场通信、联系人存储、多媒体、多任务、应用间通信、地理位置、C#和C++混合编程、Bing在线壁纸项目开发、记账本项目开发等。
本书配套提供了书中实例源代码,最大限度地满足读者高效学习和快速动手实践的需要。
本书内容覆盖面广、实例丰富、注重理论学习与实践开发的配合,非常适合于Windows 10开发入门的读者,也适合于从iOS和Android等移动平台转向Windows 10平台的读者,对于有Windows 10/Windows 8/Windows Phone开发经验的读者,也极具参考价值。
开发基础篇
第1章综述
1.1Windows 10的改变与发展机遇
1.1.1Windows 10新特性
1.1.2Windows 10手机版本
1.1.3Windows 10 PC版本
1.1.4Windows 10物联网版本
1.1.5Windows 10对于开发者的机遇
1.2Windows 10技术框架
1.2.1Windows运行时
1.2.2Windows 10通用应用平台
1.2.3Windows 10通用应用程序开发模型
第2章开发环境和项目工程解析
2.1搭建开发环境
2.1.1开发环境的要求
2.1.2开发工具的安装
2.2创建Windows 10通用应用
2.2.1创建Hello World项目
2.2.2解析Hello World应用
2.3不同平台设备的适配
2.3.1特定平台的API调用
2.3.2界面适配
第3章XAML界面原理和语法
3.1理解XAML
3.2XAML语法
3.2.1命名空间
3.2.2对象元素
3.2.3设置属性
3.2.4附加属性
3.2.5标记扩展
3.2.6事件
3.3XAML的原理
3.3.1XAML页面的编译
3.3.2动态加载XAML
3.4XAML的树结构
3.4.1可视化树
3.4.2VisualTreeHelper类
3.4.3遍历可视化树
3.5框架和页面
3.5.1框架页面结构
3.5.2页面导航
开发提高篇
第4章控件编程
4.1系统控件分类
4.2按钮(Button)
4.3文本块(TextBlock)
4.4文本框(TextBox)
4.5边框(Border)
4.6超链接(HyperlinkButton)
4.7单选按钮(RadioButton)
4.8复选框(CheckBox)
4.9进度条(ProgressBar)
4.10滚动视图(ScrollViewer)
4.11滑动条(Slider)
4.12时间选择器(TimePicker)和日期选择器(DatePicker)
4.13枢轴控件(Pivot)
4.14全景视图控件(Hub)
4.15浮出控件(Flyout)
4.16下拉框(ComboBox)
4.17命令栏/菜单栏(CommandBar)
4.18分屏控件(SplitView)
第5章布局管理
5.1布局属性和面板
5.1.1布局的通用属性
5.1.2网格布局(Grid)
5.1.3堆放布局(StackPanel)
5.1.4绝对布局(Canvas)
5.1.5相对布局(RelativePanel)
5.1.6多分辨率的适配布局
5.2布局原理
5.2.1布局的意义
5.2.2布局系统
5.2.3布局系统的重要方法和属性
5.2.4测量和排列的过程
5.3自定义布局规则
5.3.1创建布局类
5.3.2实现测量过程
5.3.3实现排列过程
5.3.4应用布局规则
第6章应用数据
6.1应用设置存储
6.1.1应用设置简介
6.1.2应用设置操作
6.1.3存储容器设置
6.1.4复合设置数据
6.2应用文件存储
6.2.1三种类型的应用文件
6.2.2应用文件和文件夹操作
6.2.3文件Stream和Buffer读写操作
6.2.4应用文件的URI方案
6.3常用的存储数据格式
6.3.1JSON数据序列化存储
6.3.2XML文件存储
6.4安装包文件数据
6.4.1安装包文件访问
6.4.2安装包文件的URI方案
第7章图形绘图
7.1图形基础
7.1.1图形中常用的结构
7.1.2画图相关的类
7.1.3基础的图形形状
7.2Path图形
7.2.1两种Path图形的创建方法
7.2.2使用简单的几何图形来创建Path
7.2.3使用PathGeometry来创建Path
7.2.4使用路径标记语法创建Path
7.2.5使用Path实现自定义图形
7.2.6利用Expression Blend工具创建Path图形
7.3画刷
7.3.1SolidColorBrush画刷
7.3.2LinearGradientBrush画刷
7.3.3ImageBrush画刷
7.4图形裁剪
7.4.1使用几何图形进行剪裁
7.4.2对布局区域进行剪裁
7.5使用位图编程
7.5.1拉伸图像
7.5.2使用RenderTargetBitmap类生成图片
7.5.3存储生成的图片文件
第8章变换特效和三维特效
8.1变换特效
8.1.1变换的原理二维变换矩阵
8.1.2平移变换(TranslateTransform)
8.1.3旋转变换(RotateTransform)
8.1.4缩放变换(ScaleTransform)
8.1.5扭曲变换(SkewTransform)
8.1.6组合变换(TransformGroup)
8.1.7矩阵变换(MatrixTransform)
8.2三维特效
8.2.1三维坐标体系
8.2.2三维旋转
8.2.3三维平移
8.2.4用矩阵实现三维特效
...
第13章图表编程
13.1动态生成折线图和区域图
13.1.1折线图和区域图原理
13.1.2生成图形逻辑封装
13.2实现饼图控件
13.2.1自定义饼图片形状
13.2.2封装饼图控件
13.3线性报表
13.3.1实现图形表格和坐标轴
13.3.2定义线性数据图形类
13.3.3实现图例
13.3.4实现线性报表
13.4QuickCharts图表控件库解析
13.4.1QuickCharts项目结构分析
13.4.2饼图图表PieChart的实现逻辑
13.4.3连续图形图表SerialChart的实现逻辑
开发进阶篇
第14章网络编程
14.1网络编程之HttpWebRequest类
14.1.1HttpWebRequest实现Get请求
14.1.2HttpWebRequest实现Post请求
14.1.3网络请求的取消
14.1.4超时控制
14.1.5断点续传
14.1.6实例演示: RSS阅读器
14.2网络编程之HttpClient类
14.2.1Get请求获取字符串和数据流数据
14.2.2Post请求发送字符串和数据流数据
14.2.3设置和获取Cookie
14.2.4网络请求的进度监控
14.2.5自定义HTTP请求筛选器
14.2.6实例演示: 部署IIS服务和实现客户端对服务器的请求
14.3使用Web Service进行网络编程
14.3.1Web Service简介
14.3.2实例演示: 手机号码归属地查询
14.4使用WCF Service进行网络编程
14.4.1WCF Service简介
14.4.2创建WCF Service
14.4.3调用WCF Service
14.5推送通知
14.5.1推送通知的原理和工作方式
14.5.2推送通知的分类
14.5.3推送通知的发送机制
14.5.4客户端程序实现推送通知的接收
第15章Socket编程
15.1Socket编程简介
15.1.1Socket相关概念
15.1.2Socket通信的过程
15.2Socket编程之TCP协议
15.2.1StreamSocket介绍及TCP Socket编程步骤
15.2.2连接Socket
15.2.3发送和接收消息
15.2.4TCP协议服务器端监听消息
15.2.5实例: 模拟TCP协议通信过程
15.3Socket编程之UDP协议
15.3.1发送和接收消息
15.3.2UDP协议服务器端监听消息
15.3.3实例: 模拟UDP协议通信过程
第16章蓝牙和近场通信
16.1蓝牙
16.1.1蓝牙原理
16.1.2Windows 10蓝牙技术简介
16.1.3蓝牙编程类
16.1.4查找蓝牙设备和对等项
16.1.5蓝牙发送消息
16.1.6蓝牙接收消息
16.1.7实例: 实现蓝牙程序对程序的传输
16.1.8实例: 实现蓝牙程序对设备的连接
16.2近场通信
16.2.1近场通信的介绍
16.2.2近场通信编程类和编程步骤
16.2.3发现近场通信设备
16.2.4近场通信发布消息
16.2.5近场通信订阅消息
16.2.6实例: 实现近场通信的消息发布订阅
第17章联系人存储
17.1联系人数据存储
17.1.1ContactStore类和StoredContact类
17.1.2联系人新增
17.1.3联系人查询
17.1.4联系人编辑
17.1.5联系人删除
17.1.6联系人头像
17.1.7实例演示: 联系人存储的使用
17.2联系人编程技巧
17.2.1vCard的运用
17.2.2RemoteID的运用
第18章多任务
18.1后台任务
18.1.1后台任务的原理
18.1.2后台任务的资源限制
18.1.3后台任务的基本概念和相关的类
18.1.4后台任务的实现步骤和调试技巧
18.1.5使用MaintenanceTrigger实现Toast通知
18.1.6使用后台任务监控锁屏Raw消息的推送通知
18.1.7后台任务的开销、终止原因和完成进度汇报
18.2后台文件传输
18.2.1后台文件传输简介
18.2.2后台文件下载步骤
18.2.3后台文件下载的实例编程
18.2.4后台文件上传的实现
第19章应用间通信
19.1启动系统内置应用
19.1.1启动内置应用的URI方案
19.1.2实例演示: 打开网页、拨打电话和启动设置页面
19.2URI关联的应用
19.2.1注册URI关联
19.2.2监听URI
19.2.3启动URI关联的应用
19.2.4实例演示: 通过URI关联打开不同的应用页面
19.3文件关联的应用
19.3.1注册文件关联
19.3.2监听文件启动
19.3.3启动文件关联应用
19.3.4实例演示: 创建一个.log后缀的文件关联应用
第20章多媒体
20.1MediaElement对象
20.1.1MediaElement类的属性、事件和方法
20.1.2MediaElement的状态
20.2本地音频播放
20.3网络音频播放
20.4使用SystemMediaTransportControls控件播放音乐
20.5本地视频播放
20.6网络视频播放
第21章地理位置
21.1定位和地图
21.1.1获取定位信息
21.1.2在地图上显示位置信息
21.1.3跟踪定位的变化
21.1.4后台定位
21.2地理围栏
21.2.1设置地理围栏
21.2.2监听地理围栏通知
第22章C#与C++混合编程
22.1C++/CX语法
22.1.1命名空间
22.1.2基本的类型
22.1.3类和结构
22.1.4对象和引用计数
22.1.5属性
22.1.6接口
22.1.7委托
22.1.8事件
22.1.9自动类型推导auto
22.1.10Lambda表达式
22.1.11集合
22.2Windows运行时组件
22.2.1在项目中使用Windows运行时组件
22.2.2Windows运行时组件异步接口的封装
22.3使用标准C++
22.3.1标准C++与C++/CX的类型自动转换
22.3.2标准C++与C++/CX的字符串的互相转换
22.3.3标准C++与C++/CX的数组的互相转换
22.3.4在Windows运行时组件中使用标准C++
开发实例篇
第23章应用实战: Bing在线壁纸
23.1应用实现的功能
23.2获取Bing壁纸的网络接口
23.3壁纸请求服务的封装
23.4应用首页的设计和实现
23.5手机和平板不同分辨率的适配
23.6壁纸列表详情和操作的实现
第24章应用实战: 记账本
24.1记账本简介
24.2对象序列化存储
24.3记账本首页磁贴设计
24.4添加一笔收入和支出
24.5月报表
24.6年报表
24.7查询记录
24.8分类图表