《深入浅出: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分类图表