《Windows 10应用开发实战(第2版)》通过丰富且简单易学的示例,全面讲述了面向Windows 10通用应用(UWP)开发相关的知识和技巧。主要内容包括应用项目基本结构、页面导航、排版布局、控件、数据视图、图形、动画、图像、多媒体、文件与数据、网络通信、传感器和语音技术等。
本书可为对Windows技术感兴趣的读者提供参考,可作为希望从事Windows 10平台开发的开发人员的入门教程,也可作为普通高校或培训机构.NET技术相关课程的参考教材,尤其适合具备.NET框架和C#编程语言基础的读者使用。
周家安,微软*有价值专家(MVP),擅长.NET及其相关开发技术,专注于探索简单实用的编程学习方法。从事过基于Windows CE扫描终端应用的项目开发和Web服务接口的项目开发。长期在博客园等技术社区撰写Windows相关技术文章,并出版有《深入浅出:Windows 8.1应用开发》《Windows 10 应用开发实战》《精通C# 5.0》《C#6.0学习笔记——从*一行C#代码到*一个项目设计(全程视频课堂)》等畅销图书。
丛书序(沈向洋)Ⅰ
第2版前言Ⅲ
第1版前言Ⅴ
第1章准备工作
1.1安装Visual Studio开发环境
1.2Visual Studio个性设置
1.2.1选择颜色主题
1.2.2设置字体
1.2.3设置启动界面
1.2.4设置项目的默认存放路径
1.2.5用好“快速启动”功能
1.3通用应用
1.3.1新的XAML设计器
1.3.2如何使用特定平台的API
1.4使用帮助文档和示例代码
第2章了解应用程序项目
2.1应用程序项目的文件结构
2.2应用程序入口点
2.3应用程序生命周期
2.3.1Application类
2.3.2挂起与恢复
2.3.3处理前台与后台之间的切换
2.3.4预启动
2.4清单文件
第3章页面导航
3.1实现导航
3.2导航事件
3.3传递导航参数
3.4管理导航记录
3.5处理手机上的“后退”键
3.6缓存页面实例
3.7保存和恢复导航状态
第4章排版布局
4.1网格布局
4.2栈布局
4.3按坐标布局
4.4Z顺序
4.5对齐方式
4.6边距
4.7自适应布局
4.8自适应触发器
第5章控件
5.1Control类
5.1.1控件模板
5.1.2控件状态
5.1.3获取控件的状态列表的技巧
5.2路由事件
5.3按钮
5.3.1Button
5.3.2RepeatButton
5.3.3HyperlinkButton
5.4单选框与多选框
5.5呈现静态文本
5.5.1TextBlock
5.5.2RichTextBlock
5.5.3处理文本溢出
5.5.4嵌入自定义字体
5.6显示图像
5.7文本输入控件
5.7.1TextBox
5.7.2RichEditBox
5.8选取日期和时间
5.9ViewBox控件
5.10报告进度
5.10.1ProgressBar
5.10.2ProgressRing
5.11对话框
5.11.1MessageDialog
5.11.2ContentDialog
5.12上下文菜单
5.12.1PopupMenu
5.12.2MenuFlyout
5.13应用程序栏
5.14命令
5.15开关控件
5.16滑动条
5.17用户控件
5.18自定义控件
5.19WebView控件
5.19.1呈现HTML内容
5.19.2执行脚本函数
5.19.3捕捉HTML内容
5.20SplitView控件
5.21墨迹处理
第6章数据视图
6.1数据绑定
6.1.1绑定方向
6.1.2Binding类
6.1.3Binding扩展标记
6.1.4数据绑定的继承性
6.1.5转换器
6.1.6更改通知
6.2ItemsControl控件
6.3DisplayMemberPath与SelectedValuePath
6.4数据模板
6.4.1自定义数据模板
6.4.2数据模板选择器
6.5分组视图
6.6自定义数据项的布局
6.7缩放视图
6.8Pivot与Hub
6.8.1Pivot控件示例
6.8.2Hub控件示例
6.9FlipView控件
6.10增量加载
6.11直接绑定到方法
第7章图形
7.1构造图形的基础元素
7.2画刷
7.2.1单色画刷(SolidColorBrush)
7.2.2线性渐变画刷(LinearGradientBrush)
7.2.3图像画刷(ImageBrush)
7.3基本图形
7.3.1直线(Line)
7.3.2椭圆(Ellipse)
7.3.3矩形(Rectangle)
7.3.4折线(Polyline)
7.3.5多边形(Polygon)
7.4路径
7.4.1LineGeometry
7.4.2RectangleGeometry
7.4.3EllipseGeometry
7.4.4PathGeometry
7.4.5GeometryGroup
7.5二维变换
7.5.1平移(TranslateTransform)
7.5.2旋转(RotateTransform)
7.5.3缩放(ScaleTransform)
7.5.4复合变换(CompositeTransform)
7.5.5使用相对定位的变换原点
7.6三维透视
7.7三维变换
第8章动画
8.1动画概要
8.1.1时间线
8.1.2演示图板(Storyboard)
8.1.3动画分类
8.1.4如何与动画时间线关联
8.2控制动画播放行为
8.3简单动画
8.4关键帧动画
8.5属性路径
第9章图像
9.1用于UI的图像加载
9.2将可视化对象呈现为图像
9.3可写位图(WriteableBitmap)
9.4图像的解码与编码
9.4.1图像解码
9.4.2图像编码
9.5图像处理
9.6人脸检测
第10章多媒体
10.1MediaElement与多媒体播放
10.2后台音频
10.3转码
10.4多媒体捕捉
10.5捕捉屏幕
第11章启动与激活
11.1Launcher组件
11.2自定义文件关联
11.3协议激活
11.4激活远程系统上的应用
第12章文件与数据
12.1文件与目录
12.1.1文件/目录操作的相关类型
12.1.2读写本地文件
12.1.3FileIO与PathIO
12.1.4DataWriter与DataReader
12.1.5访问特殊目录
12.2应用设置
12.3访问可移动存储
12.4文件与目录选择器
12.5StorageApplicationPermissions类
12.6XML与JSON数据处理
12.6.1读写XML
12.6.2操作JSON数据
12.7数据共享
12.7.1剪贴板
12.7.2向其他应用程序共享数据
12.7.3接收共享数据
12.8应用程序服务
第13章网络通信
13.1Socket通信
13.1.1基于UDP协议的通信
13.1.2通过TCP协议传输数据
13.2访问Web服务
13.3HTTP协议通信
13.4后台传输
13.5推送通知
13.6访问RSS资源
13.7扫描Wi�睩i网络
第14章传感器与地理定位
14.1设备坐标
14.2传感器的使用方法
14.3罗盘
14.4加速度传感器
14.5磁倾仪
14.6陀螺仪
14.7光感器
14.8方向传感器
14.9高度计
14.10气压计
14.11获取电池信息
14.12获取地理位置
第15章语音技术
15.1语音识别
15.2自定义语音识别规则
15.2.1自定义SGRS文件
15.2.2短语列表约束
15.3语音指令
15.4语音朗读
15.5Cortana与应用程序的后台交互
第3章页面导航
通过上一章的学习,读者已经了解到应用程序的基本结构,以及如何对应用程序生命周期内各个阶段进行处理,本章将向读者讲述与页面导航相关的内容。
与网站应用程序相似,UAP应用程序也会划分为多个页面,不同的页面将向用户呈现不同的内容。例如,一个闹钟应用程序可能存在以下页面: 浏览页面用于列出用户已经创建的闹钟清单以及每条闹钟信息的状态; 编辑页面可用于填写新闹钟信息或修改现有闹钟的信息; 设置页面允许用户对应用程序进行个性化选择,如自定义闹钟铃声等。
可见,合理使用页面导航,能够增强应用程序的层次性和逻辑表现能力。本章内容包括:
使用Frame类实现页面导航;
导航并传递参数;
管理导航记录;
处理手机上的“回退”按钮事件;
理解页面缓存;
管理页面的导航状态。
3.1实现导航
Frame类派生自ContentControl类,这说明它是一个内容控件。与其他内容控件不同的是,Frame具有导航功能,因此,Frame类的内容属性所承载的通常是应用程序页面的实例,而实现页面导航是通过调用Navigate方法来完成的,该方法有多个重载,比较常用的有以下两个重载版本:
public bool Navigate(System.Type sourcePageType);
public bool Navigate(System.Type sourcePageType, object parameter);
其中,sourcePageType参数是必须的,类型为Type,即要导航的目标页面的类型。第二个重载版本有一个parameter参数,可为任意类型,表示导航参数,也就是在导航到目标页面时传递的附加信息,目标页面可以根据parameter参数来做出相应处理,本章后面会向读者详细说明。
每个应用程序页面由Page类表示,但通常不会直接使用Page类,在向应用程序项目添加新页面时都会从Page类派生出一个子类,即自定义页面类,Navigate方法中的sourcePageType参数则指定为自定义页面类的Type。如果导航顺利完成,Navigate方法返回True,否则返回False。如果导航失败,会引发NavigationFailed事件。
下面示例将演示如何通过Frame对象来实现页面导航。
应用程序项目包含两个页面: FirstPage和SecondPage。应用程序运行后将导航到FirstPage页,接着在FirstPage页上单击页面下方的命令按钮进入SecondPage页。
首先将App类的代码做如下修改:
public sealed partial class App : Application
{
public App ()
{
this.InitializeComponent();
}
///
/// 用于导航的Frame对象
///
public Frame RootFrame { get; private set; }
protected override void OnLaunched ( LaunchActivatedEventArgs args )
{
// 实例化Frame对象
RootFrame = new Frame();
// 将当前Frame作为窗口的内容
Window.Current.Content = RootFrame;
// 导航到页面一
RootFrame.Navigate(typeof(FirstPage));
// 激活当前窗口
Window.Current.Activate();
}
}
代码先实例化一个Frame对象,然后将它作为当前窗口的内容,紧接着调用Navigate方法导航到FirstPage页。
在FirstPage中,通过处理命令按钮事件导航到SecondPage页,代码如下:
private void OnNext ( object sender, RoutedEventArgs e )
{
this.Frame.Navigate(typeof(SecondPage));
}
由于Page类公开了一个Frame属性,可以获取负责导航的Frame实例的引用,因此上面代码通过Frame属性得到参与导航的Frame对象,然后调用其Navigate方法导航到SecondPage页。
应用程序的运行结果如图3��1所示。
图3��1使用Frame类进行页面导航
完整的示例代码请参考\第3章\Example_1。
3.2导航事件
在页面导航过程中,应用程序会引发一系列事件,在需要的时候,开发者应该处理这些事件。
对Frame而言,在导航到目标页面之前会引发Navigating事件,此时可以做必要的检查,如果希望取消导航,可以设置事件参数NavigatingCancelEventArgs的Cancel属性为True来阻止导航; 当Frame对象顺利导航到目标页面后,会发生Navigated事件。通过事件参数对象的SourcePageType属性可以获得目标页面的类型,即传递给Navigate方法的sourcePageType参数的值。
对于页面来说,当导航进入页面后,会调用OnNavigatedTo方法; 当导航即将离开页面时,OnNavigatingFrom方法会被调用,同样,可以通过设置方法参数e的Cancel属性为True来取消导航; 当导航已经离开当前页面后会调用OnNavigatedFrom方法。以上三个方法都是虚方法,开发者在派生类中可以重写它们并加入自定义处理代码。
那么,如何知道上面所述的几个事件的发生顺序呢?接下来将通过一个示例来向读者展示各个导航事件的引发顺序。
在应用程序项目中添加三个页面,分别命名为Page1、Page2和Page3。三个页面的结构相似,所以此处只介绍Page1页面的结构,其描述界面布局的XAML代码如下:
VerticalAlignment="Center" HorizontalAlignment="Center"/> 页面中仅用一个TextBlock元素来显示标识文本,以方便在运行阶段进行观察。 本示例程序主窗口的内容对象并非Frame实例,而是MainPage页面,然后将负责导航的Frame对象放置在MainPage页面中。MainPage页面的XAML如下: Page 1 Page 2 Page 3 Navigating="OnFrameNavigating" Navigated="OnFrameNavigated"> ……
第2版前言
自首次发布(版本build 10240)以来,Windows 10操作系统已经推送过两次正式的更新版本,分别是build 10586与build 14393,面向开发者的SDK工具以及API版本也跟随系统进行了相应的更新,本书是依据正式发布的SDK最新版本(即build 14393,不包含最新的预览版本)来进行编写的。
本书精心挑选了一些面向开发者的新功能,并结合实例加以阐述,以帮助广大读者朋友了解新版SDK和API集。
本次修订将包括以下新内容:
手写与墨迹应用;
应用预启动功能以及在前/后台之间的切换;
x: Bind绑定标记的使用;
人脸检测技术的应用;
扫描无线网络;
远程激活;
应用与Cortana的交互。
随着平台的统一,以及装机量的急速增长,面向Windows 10的通用应用(UWP)数量也相应增加,而且许多旧版本(主要面向Windows 8/8.1)的应用也进行了相应的替换与更新,以适应新的系统环境。UWP应用可运行于多种Windows设备上,使得移动应用不仅仅局限于手机平台,而是扩展到包括各种台式计算机、笔记本计算机、平板电脑以及物联网等设备上,移动应用的用途与发展空间得到了前所未有的拓展。
以目前的形势来看,Windows 10未来会有更大的发展潜力,对UWP应用的需求也会随之增长,希望本书内容对广大Windows开发者会有所帮助,我们也欢迎更多对Windows应用感兴趣的开发者参与UWP应用的开发。
由于作者的水平有限,本书难以兼顾UWP开发方面的所有知识点。编写本书的目的仅仅是为初学者提供参考。如果书中出现错误或不妥之处,也欢迎读者朋友批评指正。
说明: 本书配套资源下载地址为http://pan.baidu.com/s/lo8k9mqu。
作者2017年1月
第1版前言
尽管在Windows 8.1的SDK中已经出现了Universal App(通用应用程序,UAP),但还不能算是真正意义上的通用,只是完成了代码共享,而面向Windows与Windows Phone的应用仍然是彼此独立的。
Windows 10顺利地完成了应用的通用与平台的统一,UAP模型最终形成。使用面向Windows 10的SDK,开发者只需要开发单个应用程序,就可以运行于各种Windows设备上,例如PC、平板电脑、手机等。开发者无须为多种设备开发单独的应用。
基本内容
本书的主题都是围绕Runtime App开发而展开的,系统地介绍了Runtime App开发的基础知识,主要涵盖以下内容:
学习前的准备工作;
了解UAP项目的结构;
页面与导航;
应用页面的布局与设计;
各种控件的使用;
数据视图;
图形绘制与动画处理;
图像与多媒体处理;
启动与激活;
管理文件和数据;
常用的网络通信技术;
传感器的使用;
语音技术。
光盘内容
本书配套的光盘资源中,除了包含书中所有示例的源代码外,还附带相关的视频演示。视频文件包括以下内容:
UAP简介;
应用程序生命周期;
页面与导航;
布局控件使用;
对话框;
后台任务示例;
读写本地文件示例;
App Service(应用服务)示例;
读取PDF文档示例;
JSON数据处理示例;
序列化与反序列化示例;
文件关联示例;
OCR识别示例;
如何升级应用项目。
适用性
本书适用于:
具备.NET平台开发基础知识或熟悉C#语言的读者;
对Windows 10 UAP开发感兴趣的读者;
希望加入Windows应用开发阵营的移动应用开发者;
作为各类培训机构或高等院校相关专业的参考教材。
如何使用本书
本书采用通俗易懂的讲解风格,尽量避免出现晦涩难懂的描述与理论说教,降低入门者的理解难度。同时,书中针对每个知识点都附有简单示例程序。读者在阅读本书的时候,可以先阅读每个知识点的介绍说明,然后将附带的示例应用运行一遍,先从感性上直观地观察一下运行效果。当读者对知识点和示例有一定了解后,不妨尝试一下独立完成书中的示例项目,这样做可以帮助读者真正掌握相关的知识和技巧。
当读者了解书中的示例后,也可以进行“二次创作”,即适当地将示例代码进行修改,使其变成一个新的示例。如此一来,一个示例可以变成两个、三个,甚至更多的示例,读者从中也学会了如何灵活地去运用学到的知识。当然,该做法对于从未进行过任何程序开发的入门者而言,会有些困难。刚开始的时候,读者可以抱着尝试的心态去做,不要在乎付出的劳动是否马上得到回报。“欲速则不达”!只要坚持不懈,一点一滴地积累和总结,相信每个人有志于步入编程殿堂的人都会收获颇丰。
后续工作
学习本书内容后,读者应该具备独立开发应用程序的能力。此时读者可以考虑运用所学知识去参与或开发一些Windows应用; 也可以在本书的学习基础上,继续学习面向Windows 10的其他开发方向(如面向物联网设备的应用开发),进而充分体验只需一个应用,便可以运行在PC/笔记本、xBox游戏机、平板电脑、手机等多种平台的乐趣。
勘误与支持
由于作者水平有限,书中难免会有一些不妥之处,也可能出现错误和不准确的叙述。望读者朋友不吝指出和反馈。
鸣谢
本书能够顺利完成,离不开所有亲朋好友们的鼓舞和支持。感谢众多网友所给予的肯定,也感谢清华大学出版社给了我一个写作的机会,感谢盛东亮编辑,在书稿的写作过程中给予了我极大的帮助和支持。
作者2015年8月
这本书简直是为我量身定做的!我一直对 Windows 10 应用开发充满兴趣,但苦于找不到一本既有深度又不失易懂的书籍。翻开《Windows 10 应用开发实战(第2版)》,我立刻被其严谨的结构和清晰的逻辑所吸引。作者从最基础的概念讲起,循序渐进地引导读者进入 UWP (Universal Windows Platform) 的世界。无论是 XAML 语言的详解,还是 C 编程模型的介绍,都处理得恰到好处,不会让人感到枯燥乏味。书中大量的代码示例更是锦上添花,我可以直接复制代码并在自己的开发环境中进行尝试,大大加快了我的学习进程。更重要的是,这本书不仅仅停留在理论层面,它还深入探讨了许多实际开发中会遇到的问题,比如数据绑定、导航、控件定制等等,这些都是我之前在其他资料中学不到的宝贵经验。我尤其欣赏作者在讲解异步编程和线程管理时的细腻之处,这对于开发流畅、响应迅速的应用至关重要。读完前几章,我感觉自己已经掌握了构建一个基本 UWP 应用的核心技能,迫不及待地想要继续探索书中更高级的主题。
评分作为一个有着几年 C++ 开发经验的开发者,我一直对 Windows 平台上的现代化应用开发感到一丝陌生,尤其是在接触了 WinForms 和 WPF 之后,UWP 的理念对我来说是全新的。《Windows 10 应用开发实战(第2版)》以一种非常友好的方式为我打开了这扇门。它没有直接把我丢进复杂的 API 堆砌中,而是先花了相当篇幅讲解了 UWP 的设计哲学和核心组件,这让我能够从宏观上理解整个框架。书中对于 MVVM (Model-View-ViewModel) 模式的讲解尤为深入,结合具体的 C 代码演示,让我深刻理解了如何解耦 UI 和业务逻辑,从而编写出更易于维护和测试的代码。我也从中学到了很多关于用户体验设计的最佳实践,比如如何利用内置控件来提升应用的可用性和美观度,以及如何处理各种屏幕尺寸和输入方式的适配。其中关于数据存储和网络通信的部分,也提供了非常实用的指导,让我能够构建出功能更全面的应用。总的来说,这本书对于我这样的有一定开发基础,但对 UWP 不甚了解的开发者来说,是一本极具价值的入门和进阶指南。
评分作为一名独立开发者,我一直在寻找能够帮助我快速开发出高质量 Windows 10 应用的工具和资源。《Windows 10 应用开发实战(第2版)》绝对是我近期最满意的一次投资。这本书的内容非常全面,涵盖了从 UI 设计到后台服务,再到应用发布和商店上架的整个流程。我特别欣赏书中对于各种常见第三方库和 API 的集成讲解,这为我节省了大量的摸索时间。例如,书中关于 Azure 服务集成的内容,让我能够轻松地为我的应用添加云存储和身份验证功能。此外,作者对于应用性能和安全性的讲解也让我受益匪浅,确保我的应用不仅功能强大,而且稳定可靠。我还在书中学习到了如何利用 Visual Studio 的强大调试工具来快速定位和解决问题,这大大提高了我的开发效率。总而言之,这本书就像一本“武功秘籍”,让我在 Windows 应用开发的道路上少走了很多弯路,能够更专注于核心功能的实现。
评分我是一名刚刚步入大学校园,对编程充满好奇的计算机科学新生。在老师的推荐下,我购买了《Windows 10 应用开发实战(第2版)》,并被它深深吸引。这本书的语言风格非常亲切,就像一位经验丰富的导师在手把手地教我一样。每一个概念都被拆解得非常细致,即使是初学者也能轻松理解。我尤其喜欢书中那些“知识点睛”和“常见误区”的提示,这些内容帮助我避免了许多不必要的弯路。当我第一次尝试运行书中提供的“Hello, World!”程序时,看着自己的代码在屏幕上显示出预期的结果,那种成就感是无与伦比的。这本书还让我了解了许多我之前从未听说过的技术,比如 Fluent Design System,它让我的应用设计思路有了全新的提升。而且,书中还包含了大量关于性能优化和调试技巧的内容,这对于我今后的学习和开发都将受益匪浅。虽然我才刚刚开始接触 Windows 应用开发,但我相信这本书一定会成为我学习路上的得力助手。
评分我是一名对跨平台开发略有了解,但主要在其他领域进行开发的程序员。这次为了某个项目,我不得不深入研究 Windows 10 的原生应用开发,于是选择了《Windows 10 应用开发实战(第2版)》。起初我有些担心 UWP 的学习曲线会比较陡峭,但这本书的组织结构和内容呈现方式打消了我的顾虑。作者非常有条理地介绍了 WinUI 3 和 .NET MAUI 的差异与联系,并提供了如何在两者之间进行选择的指导。书中对于现代 UI 组件的运用和事件驱动模型的讲解,让我能够快速适应 Windows 应用开发的不同模式。我尤其赞赏作者在讲解设备传感器集成、地理位置服务以及后台任务处理时的详细步骤和代码示例,这对于开发一些需要与硬件交互或长时间运行的应用非常关键。此外,书中对于应用的打包、部署和版本控制的介绍,也为我日后的项目管理提供了宝贵的参考。这本书让我对 Windows 生态系统有了更深的认识,并赋予了我独立开发高质量 Windows 应用的能力。
评分书不厚,从目录上看感觉内容分的细,但不深。
评分下一阶段就看这个了,微软大法好
评分还可以。。。。。。。。。
评分此用户未填写评价内容
评分自买自学,人一定要靠自己!
评分和第一版没多大区别。
评分下一阶段就看这个了,微软大法好
评分好书,只是现在通用程序用处不太多
评分京东买书,速度快,正品,放心
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.idnshop.cc All Rights Reserved. 静思书屋 版权所有