0

0

About Windows 10 SDK Preview Build 17110

蓮花仙者

蓮花仙者

发布时间:2025-09-01 09:04:28

|

231人浏览过

|

来源于php中文网

原创

windows developer day 活动同时,微软正式 release 了 windows 10 sdk preview build 17110。

Windows 10 SDK Preview Build 17110 在 UI 设计,游戏,应用开发,应用发布和盈利等方向都有很多更新,下面我们在每个方向找出一些重点更新来详细看一下。

UI 设计

Adaptive and interactive toast notifications

Micrsoft Doc: Toast content 

自适应和可交互的应用通知可以提升应用的使用体验。本次 SDK 更新在通知方面的提升主要是通知中图片限制的调整,通知中的进度条和输入选项的增加。

1. 图片尺寸限制

图片来源包括:http://,ms-appx:///,ms-appdata:///

对于网络图片,图片尺寸限制的单位是单个图片尺寸。16299 以后,normal connections 的限制是 3MB,metered connections 的限制是 1MB;而之前的限制统一是 200 KB。可以看到对网络图片的尺寸限制放宽了很多,很多高清晰度的图片也可以被使用。

如果你的图片超过了这个尺寸限制,或者下载过程中失败,超时,通知会正常被显示,不过图片部分会被放弃。

2. 进度条

Toast progress bar and data binding

在某些场景,例如下载或其他过程进行时,需要在通知中显示进度条,让用户可以保持对进度的关注。进度条可以是不确定的或者确定的,

About Windows 10 SDK Preview Build 17110

Design samples

Design toolkits and samples for UWP apps

Fluent Design 的演示 Sample - BuildCast 已经加入到 Design toolkits and samples 页面。展示了 Fluent Design 系统和 UWP 其他的功能。 

BuildCast sample 也在 GitHub 开源:https://github.com/Microsoft/BuildCast

About Windows 10 SDK Preview Build 17110

另外下列的工具箱都提供了控件和模板供 UWP 设计使用:

Adobe XD toolkit (v1803, March 2018)Adobe Illustrator toolkit (v1803, March 2018)Sketch toolkit (v1803, March 2018) Adobe Photoshop toolkit (v1705, May 2017) Framer toolkit (on GitHub) (v1710, August 2017)

Embedded handwriting

文本控件加入了触控笔的支持,目前在 Windows 预览版系统中支持,用户可以使用触控笔直接在 TextBox,RichTextBox 和 AutoSuggestBox 控件中使用 Windows Ink 进行书写。在用户书写后,根据手写笔记转换成对应的文字,并保留手写的痕迹。

大家可以在 Microsoft Store 下载 XAML Controls Gallery 应用来查看  TextBox 手写的 Demo,或者在 GitHub 下载 Windows-universal-samples 来查看控件的使用 Sample。

来看看内置手写的官方演示:

About Windows 10 SDK Preview Build 17110

用户可以在文本控件中任何位置进行书写,在候选窗口中识别出手写的结果并给用户推荐使用。用户可以选择一个结果,或在接受结果后继续书写。识别结果是逐个字母来识别的,所以识别结果不限于字典中的单词。在用户书写后,根据手写笔记转换成对应的文字,并保留手写的痕迹。

About Windows 10 SDK Preview Build 17110

用户可以使用标准手势和操作来编辑文字:

 穿过或划掉 -- 穿过的动作去删除一个词或词的一部分连接 -- 在词之间画一个弧形来删除词之间的空格插入 -- 画一个插入符号可以插入一个空格重写 -- 在现有文字上书写可以替换它
About Windows 10 SDK Preview Build 17110

应用目标版本为 1803 或更新时才可以使用嵌入手写输入。把 IsHandwritingViewEnabled  属性设置为 false 可以禁用这个功能。

嵌入手写输入对于触屏设备会非常的方便易用,也会避免虚拟键盘操作的不方便。让触控笔的操作更加真实化,提高书写效率和体验。

Navigation view

Microsoft Doc: Navigation view

Navigation View 控件提供了一个可收起的导航菜单作为 App 里的顶级导航,它实现自 nav pane 或  hamburger menu,可以针对不同的窗体尺寸自适应 pane 的显示模式。

微软推荐在以下场景使用 Navigation View:

存在同一类型多个顶级导航元素,例如一个体育类 App 中包含不同的体育项目5-10 个顶级导航分类的场景提供一个易用的导航体验,容器中仅包含导航元素,不包含任何操作在小窗口时保留屏幕真实的观感

 如果想了解更多关于导航的模式和基础概念,可以看这里:Navigation design basics for UWP apps

NavigationView 控件有很多的内置行为实现自简单的 nav pane 模式。如果大家想要更多复杂的行为而 NavigationView 不支持,可以尝试 Master/Detail 模式。

大家可以在 Microsoft Store 下载 XAML Controls Gallery 应用来查看  NavigationView 的 Demo,或者在 GitHub 下载 Windows-universal-samples 来查看控件的使用 Sample。

来看看 NavigationView 的 Demo:

About Windows 10 SDK Preview Build 17110
代码语言:javascript代码运行次数:0运行复制

游戏

Getting started for game development

https://docs.microsoft.com/en-us/windows/uwp/gaming/getting-started

如果大家对 Windows 或 Xbox 的游戏开发有兴趣,可以看一下这里的入门指引:

1. 获取软件和工具,包括 Windows 10 系统,Visual Studio 等

2. 准备好开发的硬件,在硬件设备上打开开发者模式

3. 运行一个 Demo 检查工作结果

4. 加入一个开发者计划

5. 注册一个开发者账号,让你可以把游戏发布到应用商店

Graphics adapters

新增了几个 DXGI API,影响图形适配偏好和移除

Petalica Paint
Petalica Paint

用AI为你的画自动上色!

下载
IDXGIFactory6  接口提供一个方法,可以枚举出基于 GPU 偏好的图形适配器列表DXGIDeclareAdapterRemovalSupport  方法声明了适配器移除的支持DXGI_GPU_PREFERENCE 描述了用于 App 运行的 GPU 偏好

应用开发

Adaptive Cards

一种可以让开发者以更通用和统一的方式来对卡片对展示和交互的方式。

详情见 Windows Developer Day - Adaptive Cards

App Resource Group

AppResourceGroupInfo 提供了新的方法,让用户可以发起过渡状态,让 App 进入暂停,激活和终止状态。

对应的方法名分别:

StartResumeAsync() -- 发起状态变化,让 App 变为激活状态;StartSuspendAsync() -- 发起状态变化,让 App 变为暂停状态;StartTerminateAsync() -- 发起状态变化,让 App 变为终止状态;

Broad file-system access

App capability declarations

File access permissions

broadFileSystemAccess  能力允许应用访问文件系统,在不使用 filepicker 的前提下。需要在 Manifest 的 capability 中进行设置。

Console UWP apps

Create a Universal Windows Platform console app

开发者可以使用 C++ /WinRT 或 CX /UWP 来创建 Console App,像 DOS 或 PowerShell 一样运行在控制台。Console App 的输入和输出都来自控制台。UWP 的 Console App 可以发布到 Microsoft Store,在 app list 中有一个主入口,一个主磁贴可以被固定到开始菜单。

开发 UWP Console App 之前,需要下载 Console App (Universal) Project Templates, 地址:Visual Studio Marketplace

下载模板后,就可以使用 C++ /WinRT 或 CX /UWP 来创建 UWP Console App 了,开发过程和普通的 Console App 很类似。

UWP Console App 可以访问应用所在目录和所有子目录,因为它的模板中在 manifest 中添加了 AppExecutionAlias 的扩展,这种扩展让用户可以在控制台中输入缩写来启动应用,应用不需要在系统的应用启动目录中。

同时开发者可以添加更广的文件系统访问权限,只需要通过 broadFileSystemAccess 的能力设置,详情见上面的介绍。

同时 UWP Console App 也支持多实例运行,因为它的模板中在 manifest 中添加了 SupportsMultipleInstances 能力。

模板同时添加了 SubSystem="console" 能力,标志了当前 App 是一个 Console App,它支持传统 Windows 和 IoT 项目。

官方提出的几个 UWP Console App 的注意事项:

只能使用  C++ /WinRT 或 CX /UWP 来开发目标必须是 桌面或 IoT 项目类型应用中不能创建窗体,所以 MessageBox 这样的窗体不能使用不支持后台任务不支持激活协议,如文件和协议等支持多实例,但不支持多实例重定向Win32 API 可用列表:Win32 and COM APIs for UWP apps

Machine Learning

千呼万唤始出来的 Windows AI Platform 和 Windows Machine Learning。

详情见 Windows Developer Day - Windows AI Platform

Multi-instance UWP apps

Create a multi-instance Universal Windows App

UWP App 可以通过配置来支持多实例,如果一个实例正在运行,一个运行的请求发过来,平台不会激活目前存在的实例,而是会创建一个新的实例,运行在一个单独的进程中,这个特性在 1803 版本开始被支持。 

同样的,多实例特性需要在 Visual Studio 中安装新的项目模板:Multi-Instance App Project Templates.VSIX, 安装后,使用 C# 和 C++ 都可以创建项目。

两个模板会被安装:

Multi-Instance UWP app -- 创建一个多实例的 AppMulti-Instance Redirection UWP app -- 提供一个附加的逻辑,让用户可以选择启动新实例,或者选择目前激活的实例。可以想象一下 Office 打开或编辑文件时的场景。

这两个模板都会在 manifest 文件中添加 SupportsMultipleInstances,其中 desktop4 和 iot2 前缀标志了项目只支持传统桌面 Windows 和 IoT 系统。manifest 配置如下:

代码语言:javascript代码运行次数:0运行复制
  ...            ...         ...

而 Multi-Instance Redirection UWP app 中对于当前实例的选择,在应用 OnLaunched() 和 OnActivated() 方法执行前的 Main() 方法中进行。这样就可以在任何其他代码执行前,决定哪个实例被激活。

代码语言:javascript代码运行次数:0运行复制
public static class Program{    static void Main(string[] args)    {        // First, we'll get our activation event args, which are typically richer        // than the incoming command-line args. We can use these in our app-defined        // logic for generating the key for this instance.        IActivatedEventArgs activatedArgs = AppInstance.GetActivatedEventArgs();        // In some scenarios, the platform might indicate a recommended instance.        // If so, we can redirect this activation to that instance instead, if we wish.        if (AppInstance.RecommendedInstance != null)        {            AppInstance.RecommendedInstance.RedirectActivationTo();        }        else        {            // Define a key for this instance, based on some app-specific logic.            // If the key is always unique, then the app will never redirect.            // If the key is always non-unique, then the app will always redirect            string key = Guid.NewGuid().ToString(); // always unique.            //string key = "Some-App-Defined-Key"; // never unique.            var instance = AppInstance.FindOrRegisterInstanceForKey(key);            if (instance.IsCurrentInstance)            {                // If we successfully registered this instance, we can now just                // go ahead and do normal XAML initialization.                global::Windows.UI.Xaml.Application.Start((p) => new App());            }            else            {                // Some other instance has registered for this key, so we'll                 // redirect this activation to that instance instead.                instance.RedirectActivationTo();            }        }    }}

Screen capture

Microsoft Doc: Screen capture

在 Windows 10 1803 版本后,SDK 提供 API 可以获取当前显示或应用窗口的图形帧,创建视频流或截屏。有了这个功能,开发者可以调用系统 UI 选择截图的范围,同时被截图的区域会有一个黄色的边框提示。具体实现方式,可以参考上面链接中的示例代码。

Windows Mixed Reality

为支持高速发展的 Windows MR 平台,新的 API 被添加到 Windows.Graphic.Holographic 和 Windows.UI.Input.Spatial 命名空间。 

Windows MR 是一个很有前景的平台,有兴趣的开发者可以在 Windows Mixed Reality 获取更多信息。 

应用发布和盈利

Enter free-form prices in a specific market's local currency

Set and schedule app pricing

当开发者针对某个特性市场重新制定 App 的价格时,不再局限于标准的价格选择,而是可以选择自己输入特定的价格数值。

目前的 17110 SDK 重点大致就是这些了,等 SDK 正式发布后,我们会再针对新的变化进行进一步的了解。

相关专题

更多
js获取数组长度的方法
js获取数组长度的方法

在js中,可以利用array对象的length属性来获取数组长度,该属性可设置或返回数组中元素的数目,只需要使用“array.length”语句即可返回表示数组对象的元素个数的数值,也就是长度值。php中文网还提供JavaScript数组的相关下载、相关课程等内容,供大家免费下载使用。

554

2023.06.20

js刷新当前页面
js刷新当前页面

js刷新当前页面的方法:1、reload方法,该方法强迫浏览器刷新当前页面,语法为“location.reload([bForceGet]) ”;2、replace方法,该方法通过指定URL替换当前缓存在历史里(客户端)的项目,因此当使用replace方法之后,不能通过“前进”和“后退”来访问已经被替换的URL,语法为“location.replace(URL) ”。php中文网为大家带来了js刷新当前页面的相关知识、以及相关文章等内容

374

2023.07.04

js四舍五入
js四舍五入

js四舍五入的方法:1、tofixed方法,可把 Number 四舍五入为指定小数位数的数字;2、round() 方法,可把一个数字舍入为最接近的整数。php中文网为大家带来了js四舍五入的相关知识、以及相关文章等内容

731

2023.07.04

js删除节点的方法
js删除节点的方法

js删除节点的方法有:1、removeChild()方法,用于从父节点中移除指定的子节点,它需要两个参数,第一个参数是要删除的子节点,第二个参数是父节点;2、parentNode.removeChild()方法,可以直接通过父节点调用来删除子节点;3、remove()方法,可以直接删除节点,而无需指定父节点;4、innerHTML属性,用于删除节点的内容。

477

2023.09.01

JavaScript转义字符
JavaScript转义字符

JavaScript中的转义字符是反斜杠和引号,可以在字符串中表示特殊字符或改变字符的含义。本专题为大家提供转义字符相关的文章、下载、课程内容,供大家免费下载体验。

394

2023.09.04

js生成随机数的方法
js生成随机数的方法

js生成随机数的方法有:1、使用random函数生成0-1之间的随机数;2、使用random函数和特定范围来生成随机整数;3、使用random函数和round函数生成0-99之间的随机整数;4、使用random函数和其他函数生成更复杂的随机数;5、使用random函数和其他函数生成范围内的随机小数;6、使用random函数和其他函数生成范围内的随机整数或小数。

991

2023.09.04

如何启用JavaScript
如何启用JavaScript

JavaScript启用方法有内联脚本、内部脚本、外部脚本和异步加载。详细介绍:1、内联脚本是将JavaScript代码直接嵌入到HTML标签中;2、内部脚本是将JavaScript代码放置在HTML文件的`<script>`标签中;3、外部脚本是将JavaScript代码放置在一个独立的文件;4、外部脚本是将JavaScript代码放置在一个独立的文件。

657

2023.09.12

Js中Symbol类详解
Js中Symbol类详解

javascript中的Symbol数据类型是一种基本数据类型,用于表示独一无二的值。Symbol的特点:1、独一无二,每个Symbol值都是唯一的,不会与其他任何值相等;2、不可变性,Symbol值一旦创建,就不能修改或者重新赋值;3、隐藏性,Symbol值不会被隐式转换为其他类型;4、无法枚举,Symbol值作为对象的属性名时,默认是不可枚举的。

551

2023.09.20

高德地图升级方法汇总
高德地图升级方法汇总

本专题整合了高德地图升级相关教程,阅读专题下面的文章了解更多详细内容。

9

2026.01.16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 7.3万人学习

Excel 教程
Excel 教程

共162课时 | 12万人学习

PHP基础入门课程
PHP基础入门课程

共33课时 | 1.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号