Windows 10新功能
2015-08-31 19:34
1111 查看
Windows 10 中面向开发人员的新增功能
Windows 10 及新增的开发人员工具将提供新通用 Windows 平台支持的工具、功能和体验。在 Windows 10 上安装完工具和 SDK 后,你可以随时创建新的通用Windows 应用,或了解如何使用 Windows 上的现有应用代码。
![](https://assets.windowsphone.com/a7f54114-818d-46e6-9c12-0472550f38b6/Get-Ready-For-Win10_InvariantCulture_Default.png)
针对 Windows 10 进行生成
凯文·盖洛提供系统的快速纲要以及直接支持新的 Windows 10 开发体验的工具更新。![](https://assets.windowsphone.com/d457e3cc-0743-4a84-8439-864a7f29f7b4/uwp-guide_448x251_InvariantCulture_Default.png)
通用 Windows 平台指南
了解通用 Windows 平台如何将自适应 UI 控件用于不同的设备类型,以及它如何使用运行 Windows 10 的所有设备上必须具有的通用 API 集。![](https://assets.windowsphone.com/b4038a4c-2256-42b1-bedc-bba058a905da/games_460x258_thirdpage_InvariantCulture_Default.jpg)
Windows 10 上的游戏
了解玩家如何才能进行连接和玩游戏 - 玩家的游戏、好友和成就将在其所有 Windows 设备上保持一致。
本主题内容
自适应布局XAML 功能
图形
网络
文本
工具
安全
Web
用户体验
应用模型
媒体
设备
系统服务
自适应布局
返回页首
XAML 针对定义用于共享相同代码文件的定制视图(.xaml 文件)提供了新的支持。这使你可以更加方便地创建和保留已定制为特定设备系列或方案的不同视图。如果你的应用具有不同的 UI 内容、布局或导航模型(与对应的方案截然不同),应构建多个视图。例如,对于针对移动版应用的单手使用模式进行优化的导航菜单,你可以使用 Pivot;而对于针对桌面版应用的鼠标输入进行优化的导航菜单,你可以使用 SplitView。 |
使用新的 VisualState.StateTriggers 功能,你可以基于窗口高度/宽度或者基于自定义触发器有条件地设置相关属性。之前,你必须在代码中处理 |
使用新的 VisualState.Setters 语法,你可以使用简化的标记定义 VisualStateManager 中的属性更改。之前,你必须使用情节提要并创建动画来应用属性更改,例如将 StackPanel 的方向从水平更改为垂直。在通用 |
XAML 功能
返回页首
在通用 Windows 应用中,你可以使用基于编译器的新绑定机制,该机制可通过 x:Bind 属性进行启用。基于编译器的绑定将在编译时严格设置类型并进行处理,这将非常快速并且会在绑定类型不匹配时提供编译时错误。因为绑定已转换为编译的应用代码,所以你现在就可以调试绑定,方法是在 Visual Studio 中逐步执行代码以诊断特定的绑定问题。你还可以使用 x:Bind 绑定到某一方法,如下所示: |
在通用 Windows 应用中,新的 x:Phase 属性允许你借助 XAML(而非代码)执行列表的增量呈现或阶段性呈现。当平移带有复杂项目的较长列表时,你的应用呈现项目的速度可能不足以跟上平移的速度,致使你的用户获得了一次槽糕的体验。阶段性呈现让你可以在某一列表项目中指定个别元素的呈现优先级,以便仅该列表项目中最重要的部分才能在快速平移方案中呈现。这将为你的用户提供一次较为顺畅的平移体验。 |
在通用 Windows 应用中,新的 x:DeferLoadingStrategy 指令允许你指定要延迟加载的用户界面部分,从而改进启动性能并减少应用的内存使用量。例如,如果你的应用 UI 中存在一个仅在输入错误数据时才显示的数据验证元素,则你可以根据需要延迟该元素的加载。随后,这些元素对象将不会在加载页面时创建,它们只会在发生数据错误或者需要添加到页面的可视树时才会进行创建。 |
借助新的 SplitView 控件,你可以轻松显示和隐藏瞬态内容。该控件通常用于“汉堡包菜单”之类的顶级导航方案,其中导航内容处于隐藏状态,可按需滑入作为用户操作的结果。 |
RelativePanel 是一种新型的布局面板,该面板允许你放置子对象并使其相互对齐或与父面板对齐。例如,你可以指定某些文本应始终置于该面板的左侧,并指定按钮应始终向下对齐文本。当创建没有明确的线性模式的用户模式但却要求使用 StackPanel 或 Grid时,可使用 |
借助 CalendarView 控件,可使用基于月份的自定义视图轻松查看和选择日期以及日期范围。CalendarView |
CalendarDatePicker 是一个下拉式控件,该控件已针对从CalendarView 选取某个日期进行了优化,尤其是能够显示诸如星期几或丰富的日历信息等上下文信息。它类似于 DatePicker 控件,不过 |
借助新的 MediaTransportControls 类,可更轻松地自定义 MediaElement 的传输控件。在 |
在通用 Windows 应用中,你可以听 DependencyObjects 上的属性更改,即便是属性没有对应的更改事件也是如此。 |
已更新为提供 3D 鸟瞰图和街景视图的 MapControl 类。这些新功能和早期的映射功能现在可用于 |
Windows.UI.Xaml.Input.KeyEventArgs 类具有新的 OriginalKey 属性以及对 Windows.System.VirtualKey 所做的相应更新,从而让你可以获取与键盘输入事件关联的原始且未映射的输入按钮。 |
借助 InkCanvas 控件和基础 InkPresenter 类,现在可以更容易地使用采用 |
已更新的 XAML 功能
返回页首
CommandBar 和 AppBar 控件已针对跨设备系列的 |
在 Windows 10 之前的版本中,默认的 GridView 布局方向在 Windows 上为水平方向,而在 Windows |
当你在 ListView 或 GridView 中显示分组数据时,组标头将在列表滚动时保持可见状态。这对于大型数据集很重要,其中标头为用户正在查看的数据提供了上下文。不过,在每个组中仅具有少数几个元素时,你可能会希望标头随着项目滚动至屏幕外。你可以通过设置 ItemsStackPanel 和 ItemsWrapGrid 上的 |
当你在 ItemsControl 中显示分组数据时,你可以通过调用 GroupHeaderContainerFromItemContainer 方法,获取对该组父标头的引用。例如,如果用户要在某组中删除最后一项,你可以获取对该组标头的引用,并同时删除该项和组标头。 |
借助 ListViewBase 上的新 ChoosingGroupHeaderContainer 事件,你可以在 |
借助 ListViewBase 上的新 ChoosingItemContainer 事件,你可以更好地控制 ListView 或 GridView 中的 |
XAML ListView 和 GridView 控件中有一个新 ListViewBase.ChooseingItemContainer 事件,该事件可在数据集合中发生更改时改进控件的性能。 |
在通用 Windows 应用中,借助 ListView 和 GridView 控件,你现在可以根据项目索引的范围(而非项目对象引用)选择相应项目。这对于描述项目选项而言是一种非常有效的方式,因为无需针对每个选定项目创建项目对象。有关详细信息,请参阅ListViewBase.SelectedRanges、ListViewBase.SelectRange 和 ListViewBase.DeselectRange。 |
ListView 和 GridView 使用项目表示器来提供默认的视觉对象,以供选择和着重显示。在 |
对于跨所有设备系列的 UWP 应用,SemanticZoom 控件现在具有一致的行为。 |
对于跨所有设备系列的通用 Windows 应用,DatePicker 和 TimePicker 控件现在具有一个一致的实现。此外,它们在 |
ScrollViewer 具有新的 DirectManipulationStarted 和 DirectManipulationCompleted 事件,可在触摸平移开始和停止时通知应用。你可以处理这些事件,以通过这些用户操作调整 |
通用 Windows 应用提供了可更轻松地构建更好的上下文菜单的全新 API。新 MenuFlyout.ShowAt 方法可用于指定浮出控件相对于其他元素的出现位置。(并且,你的 |
常用容器控件具有新的边框属性,可用于在其周围绘制边框,而无需向你的 XAML 添加额外的边框元素。ContentPresenter、Grid 和StackPanel 具有以下新属性: |
ContentPresenter 具有可更好地控制文本显示的新 API: LineHeight、LineStackingStrategy、MaxLines |
XAML 控件的焦点视觉对象现在由系统创建,而不是在控件模版中被声明为 XAML 元素。移动设备通常不需要焦点视觉对象,让系统按需创建并管理它们可改进应用性能。如果你需要更好地控制焦点视觉对象,可以替换该系统行为并提供定义焦点视觉对象的自定义控件模板。有关详细信息,请参阅 UseSystemFocusVisuals 和 IsTemplateFocusTarget。 |
在通用 Windows 应用中,PasswordRevealMode 属性将替换 |
以前可在 Windows Phone 8.1 上使用的 IsTextScaleFactorEnabled 属性现在可用于所有设备系列上的通用 |
Windows Phone 8.1 中的 AutoSuggestBox 控件现在可用于所有设备系列上的通用 |
Windows Phone 8.1 中的 ContentDialog 控件现在可用于所有设备系列上的通用 Windows |
Windows Phone 8.1 中的 Pivot 控件现在可用于所有设备系列上的通用 Windows 应用。现在,你可以将相同的 |
文本
返回页首
新的 Windows.UI.Text.Core 命名空间具有一个客户端-服务器系统功能,该系统可将键盘输入处理集中到单个服务器。 |
Glyphs 元素具有新的 IsColorFontEnabled 和 ColorFontPalleteIndex 属性,可支持彩色字体;现在,你可以使用字体文件呈现基于字体的图标。在将 |
用户有时通过“输入法编辑器”输入文本,该编辑器显示在窗口中文本输入框的正下方(通常用于东亚语言)。若要使你的应用 UI 与 IME 窗口相得益彰,你可以对 TextBox 和 RichEditBox 使用 |
TextBox 和 RichEditBox 具有以下新事件,可在使用“输入法编辑器”撰写文本时通知应用: |
XAML 文本控件具有全新 API,可改进双向文本处理,从而针对各种输入语言生成更好的文本对齐方式和段落方向。 |
在 Windows 10 中,在大多数情况下,现在 XAML 应用中的文本的呈现速度几乎是 Windows 8.1 的两倍。在大多数情况下,你的应用将受益于此改进而无需任何更改。除了更快的呈现速度以外,这些改进还使 XAML 应用的常规内存消耗减少了 5%。 |
应用程序模型
返回页首
通过语音命令扩展 Cortana 的基本功能,这些命令用于在外部应用程序中启动并执行一个单独操作。 |
新的 Windows.System.Launcher.LaunchFolderAsync 方法允许你启动文件资源管理器并显示所指定的文件夹的内容。 |
新的 Windows.ApplicationModel.DataTransfer.SharedStorageAccessManager 类及其方法允许你与另一个应用共享文件,方法是当通过使用 |
通过将 ms-settings 协议与 LaunchUriAsync 方法结合使用,显示内置的设置页面��例如,以下代码可用于显示 |
通过 Windows 10 中新增的应用到应用的通信 API,Windows 应用程序(以及 Windows Web 应用程序)可以相互启动并交换数据和文件。 |
在 Windows 10 中,应用可以使用应用服务为其他应用提供服务。应用服务采用后台任务形式。前台应用可通过在其他应用中调用应用服务,在后台执行任务。有关应用服务 API 的参考信息,请参阅 Windows.ApplicationModel.AppService。 |
对 Windows 10 的程序包清单架构参考的更新包括已添加、已删除和已更改的元素。 |
设备
返回页首
Microsoft Surface Hub 是一个功能强大的团队协作设备,也是一个适用于 Universal Windows App(可在 Surface Hub 上本机运行也可在连接设备上运行)的大屏幕平台。 |
Windows 10 引入了一个新方法 RequestAccessAsync 来提示用户提供其位置的访问权限。 |
Windows.Devices.AllJoyn Windows 运行时命名空间引入了 Microsoft 实现的 AllJoyn 开放源代码软件框架和服务。这些 |
你可以使用一个统一的 API 组,在设备系列(包括移动设备)上通过基于 XAML 的 UWP 应用进行打印。现在,你可以从 Windows.Graphics.Printing 和 Windows.UI.Xaml.Printing 命名空间使用熟悉的与打印相关的 API,将打印添加到你的移动应用。 |
通过 Windows.Devices.Power 命名空间中的电池 API,你的应用可了解连接到正在运行该应用的设备的所有电池的详细信息。 |
新的 Windows.Devices.Midi 命名空间允许你创建以下内容: |
Windows.Devices.Sensors.Custom 命名空间允许硬件开发人员定义新的自定义传感器类型,例如 CO2 |
使用主机卡模拟,可实现操作系统中所托管的 NFC 卡片模拟服务,并且仍然可以通过 NFC 射频硬件与外部读取器通信。 |
图形
返回页首
Windows 10 中的 DirectX 12 在 DirectX 的核心处引入了下一代版本的 Microsoft Direct3D,即 3D Graphics API。Direct3D 12 Graphics 能使低级别、类似控制台的 |
在通用 Windows 应用中,可将新的 SoftwareBitmapSource 类型用作 |
在通用 Windows 应用中,XAML 具有全新 Transform3D API,它可用于将透视转换应用到 XAML 树(或场景),后者再根据该单一场景范围的转换(或相机)来转换所有 XAML 子元素。虽然在以前,你可以通过使用 MatrixTransform 和复杂的数学运算来实现此转换,但是 Transform3D 显著地简化了此效果,同时还可以动画方式呈现该效果。有关详细信息,请参阅 UIElement.Transform3D 属性、Transform3D、CompositeTransform3D 和 PerspectiveTransform3D。 |
媒体
返回页首
你可以使用新的 AdaptiveMediaSource 类将自适应视频流功能添加到你的应用。通过将对象指向流清单文件对其进行初始化。受支持的清单格式包括 |
使用媒体基础转换 (MFT) 的 Windows 应用现在可以使用媒体基础转换代码视频处理器 (XVP) 来转换、缩放和转化原始视频数据: |
新 MediaProcessingTrigger API |
在通用 Windows 应用中,MediaElement 将播放包含多个流的内容,即使其中一个流具有解码错误,只要媒体内容包含至少一个有效流即可。例如,如果包含音频流和视频流的内容中的视频流失败,MediaElement 仍将播放音频流。 PartialMediaFailureDetected会通知你流内的其中一个流无法解码。它还允许你知道哪种类型的流失败,以便你可以在 |
MediaElement 具有新的 SetPlaybackSource 方法,可支持自适应视频流。若要将你的媒体源设置为 |
“MediaElement 和图像”控件具有新的 GetAsCastingSource 方法。你可以使用此方法,以编程方式将任何媒体或图像元素中的内容发送到更多远程设备,如 |
ISystemMediaTransportControls 接口和相关的 API 允许桌面应用与内置的系统媒体传输控件交互。这包括使用传输控件按钮响应用户交互,以及更新传输控件显示,以显示有关当前正在播放的媒体内容的元数据。 |
新的 WIC 方法 IWICJpegFrameEncode 和 IWICJpegFrameDecode 支持 |
新 MediaOverlay 和 MediaOverlayLayer API |
Windows.Media.Effects 命名空间提供了简单、直观的框架,以便将效果添加到音频和视频流。框架包含可以实现创建自定义的音频和视频效果并将它们插入到媒体管道的基本接口。 |
网络
返回页首
套接字更新包括: |
你可以利用 Windows.Networking.BackgroundTransfer 命名空间中的新 API |
借助 Windows.Devices.Bluetooth.Advertisement 命名空间,你的应用可以发送、接收并筛选蓝牙 |
更新设备代理,以实现在不离开应用的情况下与设备匹配。除此之外,Windows.Devices.WiFiDirect 命名空间还可以让某个设备能够检测到其他设备,并让该设备侦听传入的连接通知。 |
在调试会话期间,转换 JSON 对象时,Windows.Data.Json 命名空间现在能更好地支持已有的标准定义和开发人员体验。 |
安全性
返回页首
Windows.Security.Cryptography 命名空间中的新 API 支持椭圆曲线密码 (ECC),后者是基于有限域上椭圆曲线的公共密钥加密实现。在算法上,ECC |
Microsoft Passport 是身份验证的替代方法,它使用非对称加密和手势来替代密码。“凭据”命名空间中的类(如KeyCredentialManger)让开发人员可以轻松通过 |
Microsoft Passport for Work 是使用 Azure Active Directory 帐户登录 Windows 的替代方法,它无需使用密码、智能卡和虚拟智能卡。你可以选择是禁用还是启用此策略设置。 |
令牌是一个新型的身份验证框架,可让应用更加轻松地连接到联机标识提供程序(例如 Facebook)。通过诸如帐户用户名和密码管理以及简化的 UI 等功能,将大幅度改善为用户提供的身份验证体验。 |
系统服务
返回页首
现在,当节电模式处于启用或未启用状态时,你的 Windows 桌面应用程序将得到通知。通过响应电源条件更改,你的应用程序将有机会帮助延长电池使用时间。 |
你可以使用版本帮助程序函数确定操作系统的版本。在 Windows 10 中,这些帮助程序函数包括一个新函数 IsWindows10OrGreater。如果你想要确定系统版本,则应该使用帮助程序函数,而不是使用已弃用的 GetVersionEx 和 GetVersion 函数。有关如何获取系统版本的详细信息,请参阅获取系统版本。 |
Windows.System 命名空间中的新 API 使你可以轻松访问用户相关信息,例如其用户名和头像。它还提供响应诸如登录和注销等用户事件的功能。 |
对 Windows.System 中内存分析 API 的支持已扩展至所有平台,并且其整体功能已通过新的类和函数进行增强。 |
存储
返回页首
作为应用发布者,你可以注册你的应用,以便通过将扩展添加到应用清单,与其他应用共享存储文件夹。然后,调用Windows.Storage.ApplicationData.GetPublisherCacheFolder 方法来获取共享的存储位置。 |
工具
返回页首
Visual Studio 具备全新的 Live Visual Tree 功能。你可以在调试时用它来快速地了解应用可视化树的状态,并发现设置元素属性的方式。它还可用于在应用运行时更改属性值,以便在无需重新启动的情况下进行调整和实验。 |
跟踪日志记录是适用于用户模式应用和内核模式驱动程序的全新事件跟踪 API;它构建在 Windows |
用户体验
返回页首
通用 Windows 平台现已支持针对长篇听写场景的连续语音识别。请参阅“语音交互”文档中的“如何启用连续听写”。 |
新 Windows.ApplicationModel.DataTransfer.DragDrop 命名空间为通用 |
对于适用于桌面设备系列的 UWP 应用,现在可以将 ApplicationViewTitleBar 类与 ApplicationView.TitleBar 属性和Window.SetTitleBar 方法结合使用,以便将默认 |
Web
返回页首
Internet Explorer 中引入了边缘模式,这是一种新的“动态”文档模式,旨在实现与其他现代浏览器和现代 Web 内容的最大互操作性。正在逐渐将此实验模式推广给随机选择的一组 Windows 10 用户。你可以通过新的 IE about:flags 机制手动启用或禁用边缘模式。有关详细信息,请参阅: |
WebView 控件与新的 Edge 浏览器使用相同的呈现引擎。这提供了最精确、最符合标准的 HTML 呈现模式。 |
若要允许处理和显示单独后台线程上的 Web 内容,可以指定 WebView.ExecutionMode。这可以改进某些特定方案的性能。 |
新 WebView.UnsupportedUriSchemeIdentified 事件可用于确定你的应用处理不受支持的 |
新 WebView.NewWindowRequested 事件使你可以在 WebView |
新 WebView.PermissionRequested 事件允许 WebView |
新 WebView.UnviewableContentIdentified 事件使你可以在 |
你可以通过调用新 WebView.AddWebAllowedObject 方法,将 |
当用户与 XAML WebView 中的 Web 内容交互时,WebView 控件将根据该用户的会话缓存数据。若要清除此缓存,可以调用新的ClearTemporaryWebDataAsync 方法。例如,你可以在某位用户注销应用后清除缓存,这样另一位用户便无法访问上一会话中的任何数据。 |
相关文章推荐
- Linux学习笔记------如何执行一个 可执行程序???
- 使用Git上传项目代码到github
- ClippingNode的使用之为节点添加动态光效
- Windows 10新功能
- Thuthesis在Tex live2015中编译出错的解决方法
- 解释此函数原型中三个const的作用const int* computeResult( const int& var ) const。
- 百元买百鸡问题
- Codeforces Round #318(ABCD)
- 04-树6. Huffman Codes--优先队列(堆)在哈夫曼树与哈夫曼编码上的应用
- 点击对应的a标签返回相应的第几个
- Android 色板
- easyui validatebox 去除校验 绑定校验
- HDU1019
- leetcode--Missing Number
- 2015年8月之 英雄不老
- JS+Html控制控件的显示与隐藏
- SpringMVC异常之The request sent by the client was syntactically incorrect解决方案
- 2015年8月之 英雄不老
- HIVE中关于collect_set与explode函数妙用
- CentOS 7 + Nginx 1.9.4