Windows 10新功能

Windows 10 中面向開發人員的新增功能

Windows 10 及新增的開發人員工具將提供新通用 Windows 平臺支持的工具、功能和體驗。在 Windows 10 上安裝完工具和 SDK 後,你能夠隨時建立新的通用 Windows 應用,或瞭解如何使用 Windows 上的現有應用代碼。php

 

針對 Windows 10 進行生成

凱文·蓋洛提供系統的快速綱要以及直接支持新的 Windows 10 開發體驗的工具更新。算法

 

通用 Windows 平臺指南

瞭解通用 Windows 平臺如何將自適應 UI 控件用於不一樣的設備類型,以及它如何使用運行 Windows 10 的全部設備上必須具備的通用 API 集。編程

 

Windows 10 上的遊戲

瞭解玩家如何才能進行鏈接和玩遊戲 - 玩家的遊戲、好友和成就將在其全部 Windows 設備上保持一致。瀏覽器

本主題內容

  • 自適應佈局
  • XAML 功能
  • 圖形
  • 網絡
  • 文本
  • 工具
  • 安全
  • Web
  • 用戶體驗
  • 應用模型
  • 媒體
  • 設備
  • 系統服務
自適應佈局
返回頁首

適用於定製內容的多個視圖

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" />
XAML 功能
返回頁首

已編譯的數據綁定 (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 控件,你能夠輕鬆顯示和隱藏瞬態內容。該控件一般用於「漢堡包菜單」之類的頂級導航方案,其中導航內容處於隱藏狀態,可按需滑入做爲用戶操做的結果。

RelativePanel

RelativePanel 是一種新型的佈局面板,該面板容許你放置子對象並使其相互對齊或與父面板對齊。例如,你能夠指定某些文本應始終置於該面板的左側,並指定按鈕應始終向下對齊文本。當建立沒有明確的線性模式的用戶模式但卻要求使用 StackPanel 或 Grid時,可以使用 ReleativePanel。

CalendarView

藉助 CalendarView 控件,可以使用基於月份的自定義視圖輕鬆查看和選擇日期以及日期範圍。CalendarView 支持相關功能,例如可將最小日期、最大日期和截止日期限制在可選的日期範圍內。你還能夠設置自定義密度欄,這些密度欄可用於顯示某一天的計劃的通常「細節」。

CalendarDatePicker

CalendarDatePicker 是一個下拉式控件,該控件已針對從CalendarView 選取某個日期進行了優化,尤爲是可以顯示諸如星期幾或豐富的日曆信息等上下文信息。它相似於 DatePicker 控件,不過 DatePicker 是針對選取一個已知日期(例如出生日期)進行優化的。

MediaTransportControls

藉助新的 MediaTransportControls 類,可更輕鬆地自定義 MediaElement 的傳輸控件。在 Windows 8.1 中,你能夠啓用 MediaElement 的內置傳輸控件,或經過調用 MediaElement 方法建立你本身的傳輸控件。如今,你可使用 MediaTransportControls 的內置功能,而且仍然能夠輕鬆地自定義其外觀,以適合你的應用。

屬性更改通知

在通用 Windows 應用中,你能夠聽 DependencyObjects 上的屬性更改,即使是屬性沒有對應的更改事件也是如此。

通知的操做行爲相似於事件,但實際上顯示爲回調。與事件處理程序同樣,回調將提取一個發件人參數,但不會提取事件參數。而是,將僅傳遞屬性標識符來指示是哪一個屬性。藉助此信息,你的應用能夠定義多個屬性通知的單個處理程序。有關詳細信息,請參閱 RegisterPropertyChangedCallback 和 UnregisterPropertyChangedCallback。

地圖

已更新爲提供 3D 鳥瞰圖和街景視圖的 MapControl 類。這些新功能和早期的映射功能如今可用於 Universal Windows App。使用如下 API 將映射添加到你的應用:

  • Windows.UI.Xaml.Controls.Maps 命名空間 - 顯示地圖
  • Windows.Services.Maps 命名空間 - 查找位置和路線

若要當即開始在 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 應用中不受支持。

已更新的 XAML 功能
返回頁首

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 API

ListView 和 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 API

ScrollViewer 具備新的 DirectManipulationStarted 和 DirectManipulationCompleted 事件,可在觸摸平移開始和中止時通知應用。你能夠處理這些事件,以經過這些用戶操做調整 UI。

MenuFlyout 更新

通用 Windows 應用提供了可更輕鬆地構建更好的上下文菜單的全新 API。新 MenuFlyout.ShowAt 方法可用於指定浮出控件相對於其餘元素的出現位置。(而且,你的 MenuFlyout 甚至能夠覆蓋應用窗口邊界。) 若要建立層疊菜單,請使用新的 MenuFlyoutSubItem類。

ContentPresenter、Grid 和 StackPanel 的新邊框屬性

經常使用容器控件具備新的邊框屬性,可用於在其周圍繪製邊框,而無需向你的 XAML 添加額外的邊框元素。ContentPresenter、Grid 和StackPanel 具備如下新屬性: BorderBrush、BorderThickness、CornerRadius 和 Padding。

ContentPresenter 上的新文本 API

ContentPresenter 具備可更好地控制文本顯示的新 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 應用。

AutoSuggestBox

Windows Phone 8.1 中的 AutoSuggestBox 控件如今可用於全部設備系列上的通用 Windows 應用,你應使用它而不是 SearchBox。AutoSuggestBox 在用戶鍵入時即提供建議,與各類輸入類型相輔相成,如觸摸、鍵盤和輸入法編輯器。它還具備一些可以使之更好地發揮搜索框做用的新成員:QueryIcon 屬性和 QuerySubmitted 事件。

ContentDialog

Windows Phone 8.1 中的 ContentDialog 控件如今可用於全部設備系列上的通用 Windows 應用。ContentDialog 可用於顯示可在全部系列的設備上完美運行的自定義模式對話框。

Pivot

Windows 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 Hub

Microsoft Surface Hub 是一個功能強大的團隊協做設備,也是一個適用於 Universal Windows App(可在 Surface Hub 上本機運行也可在鏈接設備上運行)的大屏幕平臺。

Universal Windows App
構建你本身的應用(專爲你的企業設計),從而充分利用大屏幕、觸摸和墨跡輸入以及相機和傳感器等豐富的板載硬件。

請參閱 Universal Windows App 設計基礎知識中特定於 Surface Hub 的設計建議和 UX 指南。這些文檔介紹了面向 Universal Windows App 的響應式設計技術。

  • 有關支持社區共享應用的詳細信息,請參閱 SharedModeSettings。
  • 有關墨跡輸入以及在 InkCanvas 控件上支持多點墨跡的詳細信息,請參閱 Windows.UI.Input.Inking 和Windows.UI.Input.Inking.Core。
  • 有關處理傳感器輸入的詳細信息,請參閱集成設備、打印機和傳感器。

位置

Windows 10 引入了一個新方法 RequestAccessAsync 來提示用戶提供其位置的訪問權限。

用戶可經過「設置」應用中的「位置隱私設置」,設置其位置數據的隱私。僅當出現如下狀況時你的應用才能夠訪問用戶的位置:

  • 「該設備的位置」已打開(不適用於手機版 Windows 10)
  • 位置服務設置中的「位置」已「打開」
  • 在「選擇可使用你的位置的應用」下,你的應用已設置爲「打開」

在訪問用戶的位置以前,務必調用 RequestAccessAsync。此時,你的應用必須在前臺,而且 RequestAccessAsync 必須從 UI 線程中進行調用。除非用戶向你的應用授予訪問其位置的權限,不然你的應用沒法訪問位置數據。

AllJoyn

Windows.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,你的應用可瞭解鏈接到正在運行該應用的設備的全部電池的詳細信息。

  • 經過建立 Battery 對象來表示單個電池控制器或聚合的全部電池控制器(在它們分別由 FromIdAsync 或 AggregateBattery建立後)。
  • 使用 GetReport 方法返回 BatteryReport 對象,該對象可指示相應電池的充電、容量和狀態。

MIDI 設備

新的 Windows.Devices.Midi 命名空間容許你建立如下內容:

  • 能夠與外部 MIDI 設備通訊的應用。
  • 可直接與 Microsoft GS MIDI 軟件合成��通訊的應用和外部設備。
  • 多個客戶端同時訪問單個 MIDI 端口的場景。

自定義傳感器支持

Windows.Devices.Sensors.Custom 命名空間容許硬件開發人員定義新的自定義傳感器類型,例如 CO2 傳感器。

基於主機的卡片模擬 (HCE)

使用主機卡模擬,可實現操做系統中所託管的 NFC 卡片模擬服務,而且仍然能夠經過 NFC 射頻硬件與外部讀取器通訊。

實現後臺任務需經過 NFC 模擬智能卡。若要觸發後臺任務,請使用 SmartCardTrigger 類。

SmartCardTriggerType 枚舉中的 EmulatorHostApplicationActivated 值會讓你的應用知道 HCE 事件已發生。

圖形
返回頁首

DirectX

Windows 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) 來轉換、縮放和轉化原始視頻數據:

  • 新 MF_XVP_CALLER_ALLOCATES_OUTPUT 屬性支持輸出到調用方分配的紋理,即便在 Microsoft DirectX 視頻加速 (DXVA) 模式下也是如此。
  • 新 IMFVideoProcessorControl2 接口容許你的應用啓用硬件效果、查詢支持的硬件效果以及替代由視頻處理器執行的旋轉操做。

轉碼

新 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 命名空間提供了簡單、直觀的框架,以便將效果添加到音頻和視頻流。框架包含能夠實現建立自定義的音頻和視頻效果並將它們插入到媒體管道的基本接口。

網絡
返回頁首

套接字

套接字更新包括:

  • 套接字代理。套接字代理能夠表明處於應用生命週期中任意狀態的應用創建和關閉套接字鏈接。這使應用和它們提供的服務更容易被發現。例如,經過套接字代理,Win32 服務仍可接受傳入的套接字鏈接,即使是該服務不在運行也是如此。
  • 吞吐量改進。套接字吞吐量已針對使用 Windows.Networking.Sockets 命名空間的應用進行了優化。

後臺傳輸後續處理任務

你能夠利用 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 Passport

Microsoft Passport 是身份驗證的替代方法,它使用非對稱加密和手勢來替代密碼。「憑據」命名空間中的類(如KeyCredentialManger)讓開發人員能夠輕鬆經過 Microsoft Passport 來建立應用程序,而無需使用複雜的加密或生物識別。

Microsoft Passport for Work

Microsoft Passport for Work 是使用 Azure Active Directory 賬戶登陸 Windows 的替代方法,它無需使用密碼、智能卡和虛擬智能卡。你能夠選擇是禁用仍是啓用此策略設置。

令牌代理

令牌是一個新型的身份驗證框架,可以讓應用更加輕鬆地鏈接到聯機標識提供程序(例如 Facebook)。經過諸如賬戶用戶名和密碼管理以及簡化的 UI 等功能,將大幅度改善爲用戶提供的身份驗證體驗。

系統服務
返回頁首

電源

如今,當節電模式處於啓用或未啓用狀態時,你的 Windows 桌面應用程序將獲得通知。經過響應電源條件更改,你的應用程序將有機會幫助延長電池使用時間。

  • GUID_POWER_SAVING_STATUS: 將此新的 GUID 與 PowerSettingRegisterNotification 函數結合使用,以便在節電模式處於啓用或未啓用狀態時收到通知。
  • SYSTEM_POWER_STATUS: 已將此結構更新爲支持節電模式。第四個成員 SystemStatusFlag(之前稱爲 Reserved1)如今指示節電模式是否處於啓用狀態。使用 GetSystemPowerStatus 函數檢索指向此結構的指針。

版本

你可使用版本幫助程序函數肯定操做系統的版本。在 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 Tree

Visual 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:

  • ListViewBase.DragItemsCompleted
  • UIElement: CanDrag、DragStarting、StartDragAsync、DropCompleted
  • DragOperationDeferral、DragUI、DragUIOverride
  • DragEventArgs: AcceptedOperation、DataView、DragUIOverride、GetDeferral、Modifiers
  • DragItemsCompletedEventArgs、DropCompletedEventArgs、DragStartingEventArgs

自定義窗口標題欄

對於適用於桌面設備系列的 UWP 應用,如今能夠將 ApplicationViewTitleBar 類與 ApplicationView.TitleBar 屬性和Window.SetTitleBar 方法結合使用,以便將默認 Windows 標題欄內容替換爲你本身的自定義 XAML 內容。你的 XAML 將被視爲「系統鑲邊」,所以 Windows(而不是你的應用)將處理輸入事件。這意味着用戶仍可拖動窗口並調整大小,即便在單擊自定義標題欄內容時也是如此。

Web
返回頁首

Internet Explorer

Internet Explorer 中引入了邊緣模式,這是一種新的「動態」文檔模式,旨在實現與其餘現代瀏覽器和現代 Web 內容的最大互操做性。正在逐漸將此實驗模式推廣給隨機選擇的一組 Windows 10 用戶。你能夠經過新的 IE about:flags 機制手動啓用或禁用邊緣模式。有關詳細信息,請參閱:

  • 邊緣模式實際應用 - 下一步是幫助 Web 正常工做
  • Internet Explorer for Windows 10 開發人員指南

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 方法。例如,你能夠在某位用戶註銷應用後清除緩存,這樣另外一位用戶便沒法訪問上一會話中的任何數據。

相關文章
相關標籤/搜索