Windows 10 及新增的开发人员工具将提供新通用 Windows 平台支持的工具、功能和体验。在 Windows 10 上安装完工具和 SDK 后,你能够随时建立新的通用 Windows 应用,或了解如何使用 Windows 上的现有应用代码。php
凯文·盖洛提供系统的快速纲要以及直接支持新的 Windows 10 开发体验的工具更新。算法
了解通用 Windows 平台如何将自适应 UI 控件用于不一样的设备类型,以及它如何使用运行 Windows 10 的全部设备上必须具备的通用 API 集。编程
了解玩家如何才能进行链接和玩游戏 - 玩家的游戏、好友和成就将在其全部 Windows 设备上保持一致。浏览器
适用于定制内容的多个视图XAML 针对定义用于共享相同代码文件的定制视图(.xaml 文件)提供了新的支持。这使你能够更加方便地建立和保留已定制为特定设备系列或方案的不一样视图。若是你的应用具备不一样的 UI 内容、布局或导航模型(与对应的方案大相径庭),应构建多个视图。例如,对于针对移动版应用的单手使用模式进行优化的导航菜单,你可使用 Pivot;而对于针对桌面版应用的鼠标输入进行优化的导航菜单,你可使用 SplitView。缓存 |
StateTriggers使用新的 VisualState.StateTriggers 功能,你能够基于窗口高度/宽度或者基于自定义触发器有条件地设置相关属性。以前,你必须在代码中处理 Window SizeChanged 事件并调用 VisualStateManager.GotoState。安全 |
Setters使用新的 VisualState.Setters 语法,你可使用简化的标记定义 VisualStateManager 中的属性更改。以前,你必须使用情节提要并建立动画来应用属性更改,例如将 StackPanel 的方向从水平更改成垂直。在通用 Windows 应用中,你可使用如下更加简单的 Setter 语法:服务器 <setter target="stackPanel1.Orientation" value="Vertical" /> |
已编译的数据绑定 (x:Bind)在通用 Windows 应用中,你可使用基于编译器的新绑定机制,该机制可经过 x:Bind 属性进行启用。基于编译器的绑定将在编译时严格设置类型并进行处理,这将很是快速而且会在绑定类型不匹配时提供编译时错误。由于绑定已转换为编译的应用代码,因此你如今就能够调试绑定,方法是在 Visual Studio 中逐步执行代码以诊断特定的绑定问题。你还可使用 x:Bind 绑定到某一方法,以下所示:网络 <textblock text="{x:Bind Customer.Address.ToString()}" /> 对于典型的绑定方案,你可使用 x:Bind 替代绑定,从而得到改进的性能和可维护性。架构 |
列表的声明性增量呈现 (x:Phase)在通用 Windows 应用中,新的 x:Phase 属性容许你借助 XAML(而非代码)执行列表的增量呈现或阶段性呈现。当平移带有复杂项目的较长列表时,你的应用呈现项目的速度可能不足以跟上平移的速度,导致你的用户得到了一次槽糕的体验。阶段性呈现让你能够在某一列表项目中指定个别元素的呈现优先级,以便仅该列表项目中最重要的部分才能在快速平移方案中呈现。这将为你的用户提供一次较为顺畅的平移体验。并发 在 Windows 8.1 中,你能够处理 ContainerContentChanging 事件,并编写用于分阶段呈现列表项目的代码。在 UWP 应用中,你可使用 x:Phase 属性以声明方式完成阶段性呈现。经过将 x:Phase 与已编译的绑定 x:Bind 结合使用,你能够在数据模板中为每一个绑定元素轻松指定呈现优先级。在进行平移时,呈现项目所需执行的操做是基于阶段按时间进行分片,这将支持增量项目呈现。 |
UI 元素的延迟加载 (x:DeferLoadingStrategy)在通用 Windows 应用中,新的 x:DeferLoadingStrategy 指令容许你指定要延迟加载的用户界面部分,从而改进启动性能并减小应用的内存使用量。例如,若是你的应用 UI 中存在一个仅在输入错误数据时才显示的数据验证元素,则你能够根据须要延迟该元素的加载。随后,这些元素对象将不会在加载页面时建立,它们只会在发生数据错误或者须要添加到页面的可视树时才会进行建立。 |
SplitView借助新的 SplitView 控件,你能够轻松显示和隐藏瞬态内容。该控件一般用于“汉堡包菜单”之类的顶级导航方案,其中导航内容处于隐藏状态,可按需滑入做为用户操做的结果。 |
RelativePanelRelativePanel 是一种新型的布局面板,该面板容许你放置子对象并使其相互对齐或与父面板对齐。例如,你能够指定某些文本应始终置于该面板的左侧,并指定按钮应始终向下对齐文本。当建立没有明确的线性模式的用户模式但却要求使用 StackPanel 或 Grid时,可以使用 ReleativePanel。 |
CalendarView借助 CalendarView 控件,可以使用基于月份的自定义视图轻松查看和选择日期以及日期范围。CalendarView 支持相关功能,例如可将最小日期、最大日期和截止日期限制在可选的日期范围内。你还能够设置自定义密度栏,这些密度栏可用于显示某一天的计划的通常“细节”。 |
CalendarDatePickerCalendarDatePicker 是一个下拉式控件,该控件已针对从CalendarView 选取某个日期进行了优化,尤为是可以显示诸如星期几或丰富的日历信息等上下文信息。它相似于 DatePicker 控件,不过 DatePicker 是针对选取一个已知日期(例如出生日期)进行优化的。 |
MediaTransportControls借助新的 MediaTransportControls 类,可更轻松地自定义 MediaElement 的传输控件。在 Windows 8.1 中,你能够启用 MediaElement 的内置传输控件,或经过调用 MediaElement 方法建立你本身的传输控件。如今,你可使用 MediaTransportControls 的内置功能,而且仍然能够轻松地自定义其外观,以适合你的应用。 |
属性更改通知在通用 Windows 应用中,你能够听 DependencyObjects 上的属性更改,即使是属性没有对应的更改事件也是如此。 通知的操做行为相似于事件,但实际上显示为回调。与事件处理程序同样,回调将提取一个发件人参数,但不会提取事件参数。而是,将仅传递属性标识符来指示是哪一个属性。借助此信息,你的应用能够定义多个属性通知的单个处理程序。有关详细信息,请参阅 RegisterPropertyChangedCallback 和 UnregisterPropertyChangedCallback。 |
地图已更新为提供 3D 鸟瞰图和街景视图的 MapControl 类。这些新功能和早期的映射功能如今可用于 Universal Windows App。使用如下 API 将映射添加到你的应用:
若要当即开始在 Universal Windows App 中使用这些 API,请从必应地图开发人员中心请求一个密钥。有关详细信息,请参阅如何验证地图应用。一样做为 Windows 10 中的新增功能,电脑用户和手机用户能够从“设置”应用下载脱机地图。当 Internet 访问不可用时,MapControl 可以使用脱机地图(若是可用)来显示地图。 |
输入按钮映射Windows.UI.Xaml.Input.KeyEventArgs 类具备新的 OriginalKey 属性以及对 Windows.System.VirtualKey 所作的相应更新,从而让你能够获取与键盘输入事件关联的原始且未映射的输入按钮。 |
墨迹书写借助 InkCanvas 控件和基础 InkPresenter 类,如今能够更容易地使用采用 C++、C# 或 Visual Basic 的 Windows 运行时应用中功能强大的墨迹功能。 InkCanvas 控件定义了一个用于绘制和呈现墨迹笔划的覆盖区域。此控件的功能(输入、处理和呈现)源自InkPresenter、InkStroke、InkRecognizers 和 InkSynchronizer 类。 重要提示这些类在使用 JavaScript 的 Windows 应用中不受支持。 |
CommandBar 和 AppBar 更新CommandBar 和 AppBar 控件已针对跨设备系列的 UWP 应用更新为具备一致的 API、行为和用户体验。 适用于通用 Windows 应用的 CommandBar 控件已获得了改进,从而可提供 AppBar 功能的超集,而且针对如何将其用于你的应用提供了更大的灵活性。对于 Windows 10 上全部新的通用 Windows 应用,应使用 CommandBar。在 Windows 8.1 的 CommandBar 中,你只能使用已实现 ICommandBarElement 的控件,如 AppBarButton。在通用 Windows 应用中,除了 AppBarButtons 外,你如今还能够将自定义内容放入 CommandBar 中。 AppBar 控件已获得了更新,以便你能够更加轻松地将使用 AppBar 的 Windows 8.1 应用移动到通用 Windows 平台。AppBar 设计为可与全屏应用一块儿使用而且可经过边缘手势进行调用。针对诸如 Window 应用以及 Window 10 中缺乏边缘手势等问题对控件账户进行更新。 以前仅在 Windows Phone 上提供的隐藏 AppBar.ClosedDisplayMode 如今在全部设备系列上均受支持,从而让你能够在不一样的命令提示级别之间选择。AppBar 默认状况下显示最少内容的提示,以便在将你的 Windows 8.1 应用升级到通用 Windows 应用时能为你提供一致性,不过你将没法再依赖平台中的边缘手势支持。 新的 AppBar API: Closing、OnClosing、Opening、OnOpening、TemplateSettings 新的 CommandBar API: CommandBarOverflowPresenterStyle 和 CommandBarOverflowPresenter |
GridView 更新在 Windows 10 以前的版本中,默认的 GridView 布局方向在 Windows 上为水平方向,而在 Windows Phone 上为垂直方向。在 UWP 应用中,GridView 默认状况下针对全部设备系列使用垂直布局,以确保你能得到一致的默认体验。 |
AreStickyGroupHeadersEnabled 属性当你在 ListView 或 GridView 中显示分组数据时,组标头将在列表滚动时保持可见状态。这对于大型数据集很重要,其中标头为用户正在查看的数据提供了上下文。不过,在每一个组中仅具备少数几个元素时,你可能会但愿标头随着项目滚动至屏幕外。你能够经过设置 ItemsStackPanel 和 ItemsWrapGrid 上的 AreStickyGroupHeadersEnabled 属性控制此行为。 |
GroupHeaderContainerFromItemContainer 方法当你在 ItemsControl 中显示分组数据时,你能够经过调用 GroupHeaderContainerFromItemContainer 方法,获取对该组父标头的引用。例如,若是用户要在某组中删除最后一项,你能够获取对该组标头的引用,并同时删除该项和组标头。 |
ChoosingGroupHeaderContainer 事件借助 ListViewBase 上的新 ChoosingGroupHeaderContainer 事件,你能够在 ListView 或 GridView 中设置组标头的状态。例如,你能够经过处理此事件,将组标头上的 AutomationProperties.Nameproperty 设置为借助辅助技术来标识该组。 |
ChoosingItemContainer 事件借助 ListViewBase 上的新 ChoosingItemContainer 事件,你能够更好地控制 ListView 或 GridView 中的 UI 虚拟化。将此事件与ContainerContentChanging 事件结合使用,以保持你本身的要根据须要利用的回收容器的队列。例如,若是数据源因需筛选而被重置,你能够经过快速将一组已建立的视觉对象 (ItemContainers) 与其对应的数据匹配获取最佳性能。 |
列表滚动虚拟化XAML ListView 和 GridView 控件中有一个新 ListViewBase.ChooseingItemContainer 事件,该事件可在数据集合中发生更改时改进控件的性能。 系统如今将当前项与焦点状态和选择状态保留在视图中,而不是执行该列表的彻底重置,这将从新播放 Entrance 动画;视口中的新项和已删除的项将流畅地闪烁。一旦未破坏的容器中的数据集合发生变化,应用便可快速将全部“旧”项与其以前的容器匹配,并跳过容器生命周期替代方法的进一步处理。仅“新”项获得处理并与回收的容器或新容器相关联。 |
SelectRange 方法和 SelectedRanges 属性在通用 Windows 应用中,借助 ListView 和 GridView 控件,你如今能够根据项目索引的范围(而非项目对象引用)选择相应项目。这对于描述项目选项而言是一种很是有效的方式,由于无需针对每一个选定项目建立项目对象。有关详细信息,请参阅ListViewBase.SelectedRanges、ListViewBase.SelectRange 和 ListViewBase.DeselectRange。 |
新 ListViewItemPresenter APIListView 和 GridView 使用项目表示器来提供默认的视觉对象,以供选择和着重显示。在 UWP 应用中,ListViewItemPresenter 和GridViewItemPresenter 具备新的属性,以便你能够针对列表项目进一步自定义视觉对象。新增的属性为 heckBoxBrush、CheckMode、FocusSecondaryBorderBrush、PointerOverForeground、PressedBackground 和 SelectedPressedBackground。 |
SemanticZoom 更新对于跨全部设备系列的 UWP 应用,SemanticZoom 控件如今具备一致的行为。 在放大视图和缩小视图之间切换的默认操做是,点击放大视图上的组标头。这与 Windows Phone 8.1 上的此类行为相同,不过在 Windows 8.1 上有所变更,由于其中使用了收缩手势进行缩放。若要使用收缩手势更改视图,应在 SemanticZoom 的内部 ScrollViewer 上设置 ScrollViewer.ZoomMode="Enabled"。 对于通用 Windows 应用,缩小视图将替代放大视图,而且前者与所替换的视图的大小相同。这与 Windows 8.1 上的此类行为相同,不过在 Windows Phone 8.1 上有所变更,由于其中缩小视图会占用整个屏幕,而且会在其余全部内容的顶部呈现。 |
DatePicker 和 TimePicker 更新对于跨全部设备系列的通用 Windows 应用,DatePicker 和 TimePicker 控件如今具备一个一致的实现。此外,它们在 Windows 10 中有了新的外观。弹出部分如今可在全部设备上使用 DatePickerFlyout 和 TimePickerFlyout 控件。这与 Windows Phone 8.1 上的此类行为相同,不过在 Windows 8.1 上有所变更,由于其中可以使用 ComboBox 控件。经过使用浮出控件,你能够更轻松地建立自定义的日期和时间选取器。 |
新的 ScrollViewer APIScrollViewer 具备新的 DirectManipulationStarted 和 DirectManipulationCompleted 事件,可在触摸平移开始和中止时通知应用。你能够处理这些事件,以经过这些用户操做调整 UI。 |
MenuFlyout 更新通用 Windows 应用提供了可更轻松地构建更好的上下文菜单的全新 API。新 MenuFlyout.ShowAt 方法可用于指定浮出控件相对于其余元素的出现位置。(而且,你的 MenuFlyout 甚至能够覆盖应用窗口边界。) 若要建立层叠菜单,请使用新的 MenuFlyoutSubItem类。 |
ContentPresenter、Grid 和 StackPanel 的新边框属性经常使用容器控件具备新的边框属性,可用于在其周围绘制边框,而无需向你的 XAML 添加额外的边框元素。ContentPresenter、Grid 和StackPanel 具备如下新属性: BorderBrush、BorderThickness、CornerRadius 和 Padding。 |
ContentPresenter 上的新文本 APIContentPresenter 具备可更好地控制文本显示的新 API: LineHeight、LineStackingStrategy、MaxLines 和 TextWrapping。 |
系统焦点视觉对象XAML 控件的焦点视觉对象如今由系统建立,而不是在控件模版中被声明为 XAML 元素。移动设备一般不须要焦点视觉对象,让系统按需建立并管理它们可改进应用性能。若是你须要更好地控制焦点视觉对象,能够替换该系统行为并提供定义焦点视觉对象的自定义控件模板。有关详细信息,请参阅 UseSystemFocusVisuals 和 IsTemplateFocusTarget。 |
PasswordBox.PasswordRevealMode在通用 Windows 应用中,PasswordRevealMode 属性将替换 IsPasswordRevealButtonEnabled 属性,以跨设备系列提供一致的行为。 警告: 在 Windows 10 以前的版本中,密码显示按钮默认处于不显示状态;在通用 Windows 应用中,它默认处于显示状态。若是设备安全要求始终掩盖密码,请务必将 PasswordRevealMode 设置为 Hidden。 |
Control.IsTextScaleFactorEnabled之前可在 Windows Phone 8.1 上使用的 IsTextScaleFactorEnabled 属性如今可用于全部设备系列上的通用 Windows 应用。 |
AutoSuggestBoxWindows Phone 8.1 中的 AutoSuggestBox 控件如今可用于全部设备系列上的通用 Windows 应用,你应使用它而不是 SearchBox。AutoSuggestBox 在用户键入时即提供建议,与各类输入类型相辅相成,如触摸、键盘和输入法编辑器。它还具备一些可以使之更好地发挥搜索框做用的新成员:QueryIcon 属性和 QuerySubmitted 事件。 |
ContentDialogWindows Phone 8.1 中的 ContentDialog 控件如今可用于全部设备系列上的通用 Windows 应用。ContentDialog 可用于显示可在全部系列的设备上完美运行的自定义模式对话框。 |
PivotWindows Phone 8.1 中的 Pivot 控件如今可用于全部设备系列上的通用 Windows 应用。如今,你能够将相同的 Pivot 控件用于你的移动和桌面设备应用。Pivot 基于屏幕大小和输入类型提供自适应行为。你能够设置 Pivot 控件的样式,以提供相似选项卡的行为,每一个透视项中包含不一样的信息视图。 |
Windows 内核文本 API新的 Windows.UI.Text.Core 命名空间具备一个客户端-服务器系统功能,该系统可将键盘输入处理集中到单个服务器。 你可使用它来操做自定义文本输入控件的编辑缓冲区。经过应用和服务器之间的异步通讯通道,文本输入服务器可确保你的文本输入控件及其自己的编辑缓冲区内容始终保持同步。 |
矢量图标Glyphs 元素具备新的 IsColorFontEnabled 和 ColorFontPalleteIndex 属性,可支持彩色字体;如今,你可使用字体文件呈现基于字体的图标。在将 ColorFontPalleteIndex 用于调色板切换时,可以使用不一样的颜色组合呈现一个图标;例如,显示该图标的启用和禁用版本。 |
“输入法编辑器”窗口事件用户有时经过“输入法编辑器”输入文本,该编辑器显示在窗口中文本输入框的正下方(一般用于东亚语言)。若要使你的应用 UI 与 IME 窗口相得益彰,你能够对 TextBox 和 RichEditBox 使用 CandidateWindowBoundsChanged 事件和 DesiredCandidateWindowAlignment 属性。 |
文本撰写事件TextBox 和 RichEditBox 具备如下新事件,可在使用“输入法编辑器”撰写文本时通知应用: TextCompositionStarted、TextCompositionEnded 和 TextCompositionChanged。你能够处理这些事件,以经过 IME 文本撰写进程调整应用代码。例如,你能够为东亚语言实现内联自动完成功能。 |
改进的双向文本处理XAML 文本控件具备全新 API,可改进双向文本处理,从而针对各类输入语言生成更好的文本对齐方式和段落方向。 TextReadingOrder 属性的默认值已更改成 DetectFromContent,所以对检测读取顺序的支持在默认状况下处于启用状态。TextReadingOrder 属性也已添加到 PasswordBox、RichEditBox 和 TextBox。 若要选择从内容自动检测对齐方式,能够将文本控件的 TextAlignment 属性设置为新的 DetectFromContent 值。 |
文本呈现在 Windows 10 中,在大多数状况下,如今 XAML 应用中的文本的呈现速度几乎是 Windows 8.1 的两倍。在大多数状况下,你的应用将受益于此改进而无需任何更改。除了更快的呈现速度之外,这些改进还使 XAML 应用的常规内存消耗减小了 5%。 |
Cortana经过语音命令扩展 Cortana 的基本功能,这些命令用于在外部应用程序中启动并执行一个单独操做。 经过集成应用的基本功能,并经过为用户提供中心入口点以便在无需直接打开应用的状况下完成大多数任务,Cortana 能够充当应用和用户之间的联络人。在大多数状况下,这能够为用户节省大量时间和精力。 了解如何将应用集成到 Cortana Canvas。若是你须要创意,能够参考通用 Windows 应用设计基础知识中特定于 Cortana 的设计建议和 UX 指南。 |
文件资源管理器新的 Windows.System.Launcher.LaunchFolderAsync 方法容许你启动文件资源管理器并显示所指定的文件夹的内容。 |
共享存储新的 Windows.ApplicationModel.DataTransfer.SharedStorageAccessManager 类及其方法容许你与另外一个应用共享文件,方法是当经过使用 URI 激活启动另外一个应用时,传递一个共享标记。目标应用经过兑换该令牌来获取由源应用共享的文件。 |
设置经过将 ms-settings 协议与 LaunchUriAsync 方法结合使用,显示内置的设置页面��例如,如下代码可用于显示 Wi-Fi 设置页面。 bool result = await Launcher.LaunchUriAsync(new Uri("ms-settings://network/wifi")); 有关能够显示的设置页面列表,请参阅如何使用 ms-settings 协议显示内置设置页面。 |
应用到应用的通讯经过 Windows 10 中新增的应用到应用的通讯 API,Windows 应用程序(以及 Windows Web 应用程序)能够相互启动并交换数据和文件。 利用这些新 API,使得本来须要用户使用多个应用程序才能完成的复杂任务如今能够无缝地进行处理。例如,你的应用可启动社交网络应用来选择联系人,或启动结算应用程序来完成支付流程。 |
应用服务在 Windows 10 中,应用可使用应用服务为其余应用提供服务。应用服务采用后台任务形式。前台应用可经过在其余应用中调用应用服务,在后台执行任务。有关应用服务 API 的参考信息,请参阅 Windows.ApplicationModel.AppService。 |
应用包清单对 Windows 10 的程序包清单架构参考的更新包括已添加、已删除和已更改的元素。 有关该架构中全部元素、属性和类型的参考信息,请参阅元素层次结构。 |
Microsoft Surface HubMicrosoft Surface Hub 是一个功能强大的团队协做设备,也是一个适用于 Universal Windows App(可在 Surface Hub 上本机运行也可在链接设备上运行)的大屏幕平台。 Universal Windows App 请参阅 Universal Windows App 设计基础知识中特定于 Surface Hub 的设计建议和 UX 指南。这些文档介绍了面向 Universal Windows App 的响应式设计技术。
|
位置Windows 10 引入了一个新方法 RequestAccessAsync 来提示用户提供其位置的访问权限。 用户可经过“设置”应用中的“位置隐私设置”,设置其位置数据的隐私。仅当出现如下状况时你的应用才能够访问用户的位置:
在访问用户的位置以前,务必调用 RequestAccessAsync。此时,你的应用必须在前台,而且 RequestAccessAsync 必须从 UI 线程中进行调用。除非用户向你的应用授予访问其位置的权限,不然你的应用没法访问位置数据。 |
AllJoynWindows.Devices.AllJoyn Windows 运行时命名空间引入了 Microsoft 实现的 AllJoyn 开放源代码软件框架和服务。这些 API 使通用 Windows 设备应用能够在 Internet of Things (IoT) 应用场景中参与到 AllJoyn 驱动的其余设备中。有关 AllJoyn C API 的详细信息,请在 AllSeen Alliance 处下载相关文档。 使用该版本中所包含的 AllJoynCodeGen 工具,生成可用于在设备应用中启用 AllJoyn 方案的 Windows 组件。 注意: Windows 10 IoT Core 当前适用于一类新的小型设备,而且容许你使用 Windows 和 Visual Studio 建立“物联网”(IoT) 设备。了解有关 Windows IoT 的详细信息,网址为 WindowsOnDevices.com |
移动设备上的打印 API (XAML)你可使用一个统一的 API 组,在设备系列(包括移动设备)上经过基于 XAML 的 UWP 应用进行打印。如今,你能够从 Windows.Graphics.Printing 和 Windows.UI.Xaml.Printing 命名空间使用熟悉的与打印相关的 API,将打印添加到你的移动应用。 |
电池经过 Windows.Devices.Power 命名空间中的电池 API,你的应用可了解链接到正在运行该应用的设备的全部电池的详细信息。
|
MIDI 设备新的 Windows.Devices.Midi 命名空间容许你建立如下内容:
|
自定义传感器支持Windows.Devices.Sensors.Custom 命名空间容许硬件开发人员定义新的自定义传感器类型,例如 CO2 传感器。 |
基于主机的卡片模拟 (HCE)使用主机卡模拟,可实现操做系统中所托管的 NFC 卡片模拟服务,而且仍然能够经过 NFC 射频硬件与外部读取器通讯。 实现后台任务需经过 NFC 模拟智能卡。若要触发后台任务,请使用 SmartCardTrigger 类。 SmartCardTriggerType 枚举中的 EmulatorHostApplicationActivated 值会让你的应用知道 HCE 事件已发生。 |
DirectXWindows 10 中的 DirectX 12 在 DirectX 的核心处引入了下一代版本的 Microsoft Direct3D,即 3D Graphics API。Direct3D 12 Graphics 能使低级别、相似控制台的 API 发挥效率和性能。Direct3D 12 如今比以往更快、更有效。它提供更丰富的场景、更多的对象、更复杂的效果,而且能更好地利用现代图形硬件。 |
SoftwareBitmapSource在通用 Windows 应用中,可将新的 SoftwareBitmapSource 类型用做 XAML 图像源。这可将未编码的图像传递到 XAML 框架,从而当即显示在屏幕上,同时避免 XAML 框架对图像进行编码。你能够实现更快速的图像呈现,如直接经过相机呈现低延迟照片、使用自定义图像解码器、从 DirectX 图面捕获帧,或者甚至从零开始建立内存中图像并直接使用 XAML 呈现全部这些图像,延迟和内存开销均较低。 |
透视相机在通用 Windows 应用中,XAML 具备全新 Transform3D API,它可用于将透视转换应用到 XAML 树(或场景),后者再根据该单一场景范围的转换(或相机)来转换全部 XAML 子元素。虽然在之前,你能够经过使用 MatrixTransform 和复杂的数学运算来实现此转换,可是 Transform3D 显著地简化了此效果,同时还能够动画方式呈现该效果。有关详细信息,请参阅 UIElement.Transform3D 属性、Transform3D、CompositeTransform3D 和 PerspectiveTransform3D。 |
HTTP 实时流你可使用新的 AdaptiveMediaSource 类将自适应视频流功能添加到你的应用。经过将对象指向流清单文件对其进行初始化。受支持的清单格式包括 HTTP 实时流 (HLS) 和基于 HTTP 的动态自适应流 (DASH)。一旦将对象绑定到 XAML 媒体元素,将开始自适应播放。能够在适当状况下查询和设置流的属性,例如可用比特率、最小和最大比特率。 |
媒体基础转换代码视频处理器 (XVP) 支持媒体基础转换 (MFT)使用媒体基础转换 (MFT) 的 Windows 应用如今可使用媒体基础转换代码视频处理器 (XVP) 来转换、缩放和转化原始视频数据:
|
转码新 MediaProcessingTrigger API 让你的应用在后台任务中执行媒体转码,这样即便当前台应用已终止,也能够继续进行转码操做。 |
MediaElement 媒体失败事件在通用 Windows 应用中,MediaElement 将播放包含多个流的内容,即便其中一个流具备解码错误,只要媒体内容包含至少一个有效流便可。例如,若是包含音频流和视频流的内容中的视频流失败,MediaElement 仍将播放音频流。 PartialMediaFailureDetected会通知你流内的其中一个流没法解码。它还容许你知道哪一种类型的流失败,以便你能够在 UI 中反映该信息。若是在媒体流内的全部流失败,将引起 MediaFailed 事件。 |
经过 MediaElement 支持自适应视频流MediaElement 具备新的 SetPlaybackSource 方法,可支持自适应视频流。若要将你的媒体源设置为 AdaptiveMediaSource,请使用此方法。 |
经过“MediaElement 和图像”进行强制转换“MediaElement 和图像”控件具备新的 GetAsCastingSource 方法。你可使用此方法,以编程方式将任何媒体或图像元素中的内容发送到更多远程设备,如 Miracast、蓝牙和 DLNA。当你将 MediaElement 的 AreTransportControlsEnabled 设置为 true 时,此功能将自动启用。 |
桌面应用的媒体传输控件ISystemMediaTransportControls 接口和相关的 API 容许桌面应用与内置的系统媒体传输控件交互。这包括使用传输控件按钮响应用户交互,以及更新传输控件显示,以显示有关当前正在播放的媒体内容的元数据。 |
随机访问 JPEG 编码和解码新的 WIC 方法 IWICJpegFrameEncode 和 IWICJpegFrameDecode 支持 JPEG 图像的编码和解码。你如今还能够编制图像数据的索引,它以较大的内存占用为代价提供对大型图像的高效随机访问。 |
媒体组合的重叠新 MediaOverlay 和 MediaOverlayLayer API 更便于向媒体组合添加静态或动态媒体内容的多个层。能够为每一个层调整不透明度、位置和计时,你甚至能够为输入层实现你本身的自定义复合器。 |
新效果框架Windows.Media.Effects 命名空间提供了简单、直观的框架,以便将效果添加到音频和视频流。框架包含能够实现建立自定义的音频和视频效果并将它们插入到媒体管道的基本接口。 |
套接字套接字更新包括:
|
后台传输后续处理任务你能够利用 Windows.Networking.BackgroundTransfer 命名空间中的新 API 注册后续处理的任务组。这样你的应用即可以当即根据后台传输的成功或失败执行操做,而不是等待下次用户恢复它,即便该应用不在前台运行也是如此。 |
广告的蓝牙支持借助 Windows.Devices.Bluetooth.Advertisement 命名空间,你的应用能够发送、接收并筛选蓝牙 LE 广告。 |
Wi-Fi Direct API 更新更新设备代理,以实如今不离开应用的状况下与设备匹配。除此以外,Windows.Devices.WiFiDirect 命名空间还可让某个设备可以检测到其余设备,并让该设备侦听传入的链接通知。 注意在此版本中,Wi-Fi Direct 功能改进未内置于 UX 中,而且它们仅支持一键配对。此外,此版本仅支持一个活动链接。 |
JSON 支持改进在调试会话期间,转换 JSON 对象时,Windows.Data.Json 命名空间如今能更好地支持已有的标准定义和开发人员体验。 |
ECC 加密Windows.Security.Cryptography 命名空间中的新 API 支持椭圆曲线密码 (ECC),后者是基于有限域上椭圆曲线的公共密钥加密实现。在算法上,ECC 比 RSA 更为复杂,它提供更小的密钥大小、可减小内存占用而且可提升性能。它提供 Microsoft 服务而且向客户提供 RSA 密钥和 NIST 批准曲线参数的替代方法。 |
Microsoft PassportMicrosoft Passport 是身份验证的替代方法,它使用非对称加密和手势来替代密码。“凭据”命名空间中的类(如KeyCredentialManger)让开发人员能够轻松经过 Microsoft Passport 来建立应用程序,而无需使用复杂的加密或生物识别。 |
Microsoft Passport for WorkMicrosoft Passport for Work 是使用 Azure Active Directory 账户登陆 Windows 的替代方法,它无需使用密码、智能卡和虚拟智能卡。你能够选择是禁用仍是启用此策略设置。 |
令牌代理令牌是一个新型的身份验证框架,可以让应用更加轻松地链接到联机标识提供程序(例如 Facebook)。经过诸如账户用户名和密码管理以及简化的 UI 等功能,将大幅度改善为用户提供的身份验证体验。 |
电源如今,当节电模式处于启用或未启用状态时,你的 Windows 桌面应用程序将获得通知。经过响应电源条件更改,你的应用程序将有机会帮助延长电池使用时间。
|
版本你可使用版本帮助程序函数肯定操做系统的版本。在 Windows 10 中,这些帮助程序函数包括一个新函数 IsWindows10OrGreater。若是你想要肯定系统版本,则应该使用帮助程序函数,而不是使用已弃用的 GetVersionEx 和 GetVersion 函数。有关如何获取系统版本的详细信息,请参阅获取系统版本。 若是你使用已弃用的 GetVersionEx 或 GetVersion 函数在 OSVERSIONINFOEX 或 OSVERSIONINFO 结构中获取版本信息,请注意,这些结构包含的版本号将从适用于 Windows 8.1 和 Windows Server 2012 R2 的 6.3 版增长到适用于 Windows 10 的 10.0 版。有关操做系统版本号的详细信息,请参阅操做系统版本。 你还须要在你的应用程序中明肯定向到 Windows 8.1 或 Windows 10,以使用 GetVersionEx 或 GetVersion 函数获取有关这些版本的正确版本信息。有关如何针对这些版本的 Windows 定向你的应用程序的信息,请参阅针对 Windows 定向你的应用程序。 |
用户信息Windows.System 命名空间中的新 API 使你能够轻松访问用户相关信息,例如其用户名和头像。它还提供响应诸如登陆和注销等用户事件的功能。 |
内存管理和分析对 Windows.System 中内存分析 API 的支持已扩展至全部平台,而且其总体功能已经过新的类和函数进行加强。 |
文件搜索 API 可用于 Windows Phone做为应用发布者,你能够注册你的应用,以便经过将扩展添加到应用清单,与其余应用共享存储文件夹。而后,调用Windows.Storage.ApplicationData.GetPublisherCacheFolder 方法来获取共享的存储位置。 Windows 运行时应用的强大安全模型一般可防止应用在它们本身间共享数据。可是,在来自同一个发布者的应用基于每一个用户共享文件和设置时,这可能会颇有用。 |
Visual Studio 中的 Live Visual TreeVisual Studio 具有全新的 Live Visual Tree 功能。你能够在调试时用它来快速地了解应用可视化树的状态,并发现设置元素属性的方式。它还可用于在应用运行时更改属性值,以便在无需从新启动的状况下进行调整和实验。 |
跟踪日志记录跟踪日志记录是适用于用户模式应用和内核模式驱动程序的全新事件跟踪 API;它构建在 Windows 事件跟踪 (ETW) 的基础之上。此 API 提供了一种简化方式来检测代码和在结构数据中包括事件,而无须要求单独的检测清单 XML 文件。 WinRT、.NET 和 C/C++ 跟踪日志记录 API 可为不一样的开发人员受众提供服务。 |
语音识别通用 Windows 平台现已支持针对长篇听写场景的连续语音识别。请参阅“语音交互”文档中的“如何启用连续听写”。 |
不一样应用程序平台之间的拖放功能新 Windows.ApplicationModel.DataTransfer.DragDrop 命名空间为通用 Windows 应用提供拖放功能。之前,桌面程序中的常见拖放方案(例如将文档从文件夹拖动到须要附加它的 Outlook 电子邮件中)不适用于通用 Windows 应用。经过使用这些新的 API,你的应用可让用户轻松地在不一样的通用 Windows 应用和桌面之间移动数据。 为支持在应用间拖放,已向 XAML 添加如下新 API:
|
自定义窗口标题栏对于适用于桌面设备系列的 UWP 应用,如今能够将 ApplicationViewTitleBar 类与 ApplicationView.TitleBar 属性和Window.SetTitleBar 方法结合使用,以便将默认 Windows 标题栏内容替换为你本身的自定义 XAML 内容。你的 XAML 将被视为“系统镶边”,所以 Windows(而不是你的应用)将处理输入事件。这意味着用户仍可拖动窗口并调整大小,即便在单击自定义标题栏内容时也是如此。 |
Internet ExplorerInternet Explorer 中引入了边缘模式,这是一种新的“动态”文档模式,旨在实现与其余现代浏览器和现代 Web 内容的最大互操做性。正在逐渐将此实验模式推广给随机选择的一组 Windows 10 用户。你能够经过新的 IE about:flags 机制手动启用或禁用边缘模式。有关详细信息,请参阅:
|
WebView Edge 模式浏览WebView 控件与新的 Edge 浏览器使用相同的呈现引擎。这提供了最精确、最符合标准的 HTML 呈现模式。 |
线程外 WebView若要容许处理和显示单独后台线程上的 Web 内容,能够指定 WebView.ExecutionMode。这能够改进某些特定方案的性能。 |
WebView.UnsupportedUriSchemeIdentified 事件新 WebView.UnsupportedUriSchemeIdentified 事件可用于肯定你的应用处理不受支持的 URI 方案的方式。若要让你的应用提供用于不受支持的 URI 方案的自定义处理方式,你能够处理此事件。 有关 HTML WebView 控件,请参阅 MSWebViewUnsupportedUriSchemeIdentified 事件。 |
WebView.NewWindowRequested 事件新 WebView.NewWindowRequested 事件使你能够在 WebView 中的脚本请求新浏览器窗口时作出响应。 有关 HTML WebView 控件,请参阅 MSWebViewNewWindowRequested 事件。 |
WebView.PermissionRequested 事件新 WebView.PermissionRequested 事件容许 WebView 内容使用丰富的全新 HTML5 API,它们须要得到特殊的用户权限,如地理位置。 有关 HTML WebView 控件,请参阅 MSWebViewPermissionRequested 事件。 |
WebView.UnviewableContentIdentified 事件新 WebView.UnviewableContentIdentified 事件使你能够在 WebView 导航到 PDF 文件或 Office 文档等非 Web 内容时作出响应 有关 HTML WebView 控件,请参阅 MSWebViewUnviewableContentIdentified 事件。 |
WebView.AddWebAllowedObject 方法你能够经过调用新 WebView.AddWebAllowedObject 方法,将 WinRT 对象注入 XAML WebView 中,而后经过托管在该 WebView 中的可信 JavaScript 来调用其函数。例如,Web 内容能够经过请求其父应用调用 ToastNotificationManager WinRT API,显示系统通知。 有关 HTML WebView 控件,请参阅 addWebAllowedObject 方法。 |
WebView.ClearTemporaryWebDataAync 方法当用户与 XAML WebView 中的 Web 内容交互时,WebView 控件将根据该用户的会话缓存数据。若要清除此缓存,能够调用新的ClearTemporaryWebDataAsync 方法。例如,你能够在某位用户注销应用后清除缓存,这样另外一位用户便没法访问上一会话中的任何数据。 |