本书对Windows 10 Universal应用开发的知识进行了详细的讲解,深入地解剖Windows 10的各种各样的编程技术,从原理到实践到应用都进行了深入的探讨和讲解。详细讲解了Windows 10开发的XAML原理、控件编程、数据存储、网络编程、界面原理、样式模板、图形绘图、图表编程、动画编程、列表编程和控件编程等实用性非常强的知识。
《深入浅出:Windows 10通用应用开发(第2版)/微软技术开发者丛书》系统论述了Windows10操作系统的基本架构、开发方法和项目实战,由浅人深地讲解了Windows10通用应用程序(可运行于手机、平板电脑、个人计算机、智能硬件、Xbox、HoloLens等)的开发知识。
《深入浅出:Windows 10通用应用开发(第2版)/微软技术开发者丛书》共分为4篇:开发基础篇(第1~3章)、开发提高篇(第4~13章)、开发进阶篇(第14~23章)和开发实例篇(第24、25章)。
《深入浅出:Windows 10通用应用开发(第2版)/微软技术开发者丛书》全面介绍了Windows10通用应用程序开发技术,包括Windows10技术架构、开发环境和项目解析、XAML语法和原理、控件编程、布局管理、应用数据、动画编程、列表编程、图表编程、数据绑定、MVVM模式、网络编程、Socket编程、蓝牙和近场通信、联系人存储、多媒体、多任务、应用间通信、地理位置、C#和C++混合编程、异步任务编程、Bing在线壁纸项目开发、记账本项目开发等。
《深入浅出:Windows 10通用应用开发(第2版)/微软技术开发者丛书》配套提供了书中实例源代码,很大程度地满足读者高效学习和快速动手实践的需要。
《深入浅出:Windows 10通用应用开发(第2版)/微软技术开发者丛书》内容覆盖面广、实例丰富、注重理论讲解与实践开发的配合,非常适合Windows10开发入门的读者,也适合从iOS和Android等移动平台转向Windows10平台的读者,对于有Windows10/8/Phone开发经验的读者,也极具参考价值。
第3章
XAML界面原理和语法
XAML是英文Extensible Application Markup Language的简写,是用于实例化.NET对象的标记语言。XAML是微软技术体系中的UI编程语言,在Windows 10、Windows 8、Windows Phone、Silverlight和WPF技术框架下都可以使用XAML的语法来编写程序的界面。在Windows 10的普通应用程序(游戏除外)中,也是使用XAML来编写程序的界面(HTML5/JS的开发模式是使用HTML和CSS的语法来实现界面的编程),所以对XAML语法的理解和掌握是编写Windows 10通用应用程序的重要基础。Windows 10应用程序中的界面是由xaml文件组成的,和这些xaml文件一一对应起来的是xaml.cs文件,这就是微软典型的CodeBehind模式的编程方式。xaml文件的语法类似于XML和HTML的结合体,这是微软的XAML语言特有的语法结构,本章将介绍有关XAML方面的语法和原理知识。
3.1理解XAML
XAML是一种声明性标记语言,它简化了为.NET Framework应用程序创建UI的过程,使程序界面编程更加简单和简洁。XAML直接以程序集中定义的一组特定后备类型表示对象的实例化,就如同其他的基于XML的标记语言一样,XAML大体上也遵循XML的语法规则。例如,每个XAML元素包含一个名称以及一个或多个属性。XAML文件中的每个元素代表.NET中的一个类,并且XAML文件中的每个属性代表.NET类中的一个属性、方法或事件。例如,若要在Windows 10的界面上创建一个按钮,可以用下面的XAML代码来实现:
<Button x:Name="button 1" BorderThickness="1" Click="OnClick1" Content="按钮" />
上面的XAML代码中的按钮Button实际上是Windows 10中的Windows.UI.Xaml.Controls.Button类。XAML的属性是相应类中的相关属性,如上例中的Name、BorderThickness实际上是Button类中相应的相关属性。在这句XAML语句中,还实现了事件处理程序,Click="OnClick1",即XAML支持声明事件处理程序,具体逻辑在其对应的.xaml.cs的后台代码文件的OnClick1方法中。XAML文件可以映射到一个扩展名为.xaml.cs的后台代码文件。这些后台代码文件中的partial class包含了XAML呈现层可以使用的事件、方法和属性。
编写XAML代码时需要注意,声明一个XAML元素时,可以用Name属性为该元素指定一个名称,这样在C#代码里面才可以访问到此元素。这是因为某种类型的元素可能在XAML页面上声明多次,但是如果不显式地指明各个元素的Name属性,则无法区分哪个是想要操作的元素,也就无法通过C#来操作该元素和其中的属性。
XAML语言有严格的语法标准,所以在编写XAML代码的时候需要遵循一些规则。下面是声明一个XAML编程必须遵循的4大原则:
(1) XAML是大小写区分的,元素和属性的名称必须严格区分大小写,例如对于Button元素来说,其在XAML中的声明应该为<Button>,而不是<button>;
(2) 所有的属性值,无论它是什么数据类型,都必须包含在双引号中;
(3) 所有的元素都必须是封闭的,例如<Button…/>,或者是有一个起始标记和一个结束标记,例如<Button>…</Button>;
(4) 最终的XAML文件也必须是合适的XML文档。
3.2XAML语法
可以直接通过Visual Stuido或者Expression Blend这些开发工具的图形化界面来编辑Windows 10的程序界面,这些开发工具很强大,甚至可以不用手工去编写XAML的代码就可以完成界面编程。虽然有这些强大工具的支持,但是还是非常有必要去学习和掌握XAML的相关语法。掌握好XAML的语法才能够更加透彻地理解Windows 10界面编程的原理,实现更加复杂的页面编程。下面介绍一些重要的XAML语法。
3.2.1命名空间
前面说了XAML里面的元素都是对应着.NET里面的类,但是只提供类名是不够的。XAML解析器还需要知道这个类位于哪个.NET名称空间,这样解析器才能够正确地识别XAML的元素。首先来看一个最简单的Windows 10界面的XAML代码:
<Page
x:Class=" App1.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:HelloworldDemo"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<Grid x:Name="LayoutRoot">
</Grid>
</Page>
开发基础篇
第1章 综述
1.1 Windowsl0的改变与发展机遇
...
第2章 开发环境和项目工程解析
2.1 搭建开发环境
...
2.3 不同平台设备的适配
...
第3章 XAML界面原理和语法
3.1 理解XAML
...
3.5 框架和页面
…
第4章控件编程
4.1系统控件分类
...
4.18分屏(SplitView)
第5章布局管理
5.1布局属性和面板
...
5.2布局原理
...
5.3自定义布局规则
...
第6章应用数据
6.1应用设置存储
...
6.4安装包文件数据
...
第7章图形绘图
7.1图形基础
...
7.3画刷
...
7.4图形裁剪
...
7.5使用位图编程
...
第8章变换特效和三维特效
8.1变换特效
...
8.2三维特效
...
第9章动画编程
9.1动画原理
...
9.2线性插值动画
...
9.3关键帧动画
...
9.4缓动函数动画
...
9.5基于帧动画
...
9.7模拟实现微信的彩蛋动画
...
第10章样式和模板
10.1样式
...
10.2模板
...
第11章数据绑定
11.1数据绑定的基础
...
11.2绑定集合
...
11.3MVVM模式
...
第12章列表编程
12.1列表控件的使用
...
12.2虚拟化技术
...
第13章图表编程
13.1动态生成折线图和区域图
...
13.2实现饼图控件
...
13.3线性报表
...
13.4QuickCharts图表控件库解析
...
开发进阶篇
第14章网络编程
14.1网络编程之HttpWebRequest类
...
14.4使用WCF Service进行网络编程
...
14.5推送通知
...
14.5.4客户端程序实现推送通知的接收
第15章Socket编程
15.1Socket编程简介
...
15.2.5实例: 模拟TCP协议通信过程
15.3Socket编程之UDP协议
...
第16章蓝牙和近场通信
16.1蓝牙
...
16.2近场通信
...
第17章联系人存储
17.1联系人数据存储
...
17.2联系人编程技巧
...
第18章多任务
18.1后台任务
...
18.2后台文件传输
...
第19章应用间通信
19.1启动系统内置应用
...
19.2URI关联的应用
...
19.3文件关联的应用
...
第20章多媒体
20.1MediaElement对象
...
20.6网络视频播放
第21章地理位置
21.1定位和地图
...
21.2地理围栏
开发基础篇
第1章 综述
1.1 Windowsl0的改变与发展机遇
...
第2章 开发环境和项目工程解析
2.1 搭建开发环境
...
2.2 创建Windows10通用应用
...
2.3 不同平台设备的适配
...
第3章 XAML界面原理和语法
3.1 理解XAML
3.2 XAML语法
...
3.3 XAML的原理
3.4 XAML的树结构
...
3.5 框架和页面
3.5.1 框架页面结构
3.5.2 页面导航
……
第4章控件编程
4.1系统控件分类
...
4.18分屏(SplitView)
第5章布局管理
5.1布局属性和面板
...
5.2布局原理
...
5.3自定义布局规则
...
第6章应用数据
6.1应用设置存储
...
6.2应用文件存储
...
6.3常用的存储数据格式
...
6.4安装包文件数据
...
第7章图形绘图
7.1图形基础
...
7.2Path图形
...
7.3画刷
...
7.4图形裁剪
...
7.5使用位图编程
...
第8章变换特效和三维特效
8.1变换特效
...
8.2三维特效
...
第9章动画编程
9.1动画原理
...
9.2线性插值动画
...
9.3关键帧动画
...
9.4缓动函数动画
...
9.5基于帧动画
...
9.6动画方案的选择
...
9.7模拟实现微信的彩蛋动画
...
第10章样式和模板
10.1样式
...
10.2模板
...
第11章数据绑定
11.1数据绑定的基础
...
11.2绑定集合
...
11.3MVVM模式
...
第12章列表编程
12.1列表控件的使用
...
12.2虚拟化技术
...
第13章图表编程
13.1动态生成折线图和区域图
...
13.2实现饼图控件
...
13.3线性报表
...
13.4QuickCharts图表控件库解析
...
开发进阶篇
第14章网络编程
...
14.2网络编程之HttpClient类
...
14.4使用WCF Service进行网络编程
...
14.5推送通知
...
第15章Socket编程
15.1Socket编程简介
...
15.3.3实例: 模拟UDP协议通信过程
第16章蓝牙和近场通信
16.1蓝牙
...
16.1.8实例: 实现蓝牙程序对设备的连接
16.2近场通信
...
第17章联系人存储
17.1联系人数据存储
.....
17.2联系人编程技巧
...
第18章多任务
18.1后台任务
...
18.2后台文件传输
...
第19章应用间通信
19.1启动系统内置应用
...
19.2URI关联的应用
...
19.3文件关联的应用
...
第20章多媒体
20.1MediaElement对象
...
20.6网络视频播放
第21章地理位置
21.1定位和地图
...
21.2地理围栏
...
第22章C#与C++混合编程
22.1C++/CX语法
...
22.2Windows运行时组件
...
22.3使用标准C++
...
第23章异步任务
23.1基于任务的异步模式
...
开发实例篇
第24章应用实战: Bing在线壁纸
...
24.6壁纸列表详情和操作的实现
第25章应用实战: 记账本
...
25.8分类图表
第22章C#与C++混合编程
22.1C++/CX语法
...
22.2Windows运行时组件
...
22.3使用标准C++
...
第23章异步任务
23.1基于任务的异步模式
...
开发实例篇
第24章应用实战: Bing在线壁纸
...
第25章应用实战: 记账本
...