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