適用於開發人員的 Windows 10 (組建 10240) 的新功能
Windows 10 組建 10240 與更新的 SDK 提供提供工具、功能及體驗來造就不凡的通用 Windows 平台應用程式。 在 Windows 10 上安裝工具和 SDK 之後,您已經準備好可以建立新的通用 Windows 應用程式,或探索如何使用您在Windows 上的現有應用程式碼。
以下為您逐項列出 Windows 10 組建 10240 (也稱為 Windows 10 版本 1507) 中的新功能。
調適型配置
功能 | 描述 |
---|---|
訂製內容的多重檢視 | XAML 針對共用相同程式碼檔案的訂製檢視 (.xaml 檔案),提供了定義這些檢視的新支援。 這可讓您輕鬆建立及維護針對特定裝置系列或案例而訂製的不同檢視。 如果您的 app 有相異的 UI 內容、配置或瀏覽模型在不同的案例下會有很大的差異,請建立多重檢視。 例如,對於您的行動應用程式上針對單手使用最佳化的導覽功能,您可以搭配使用 Pivot,但對於您的桌面應用程式上針對滑鼠最佳化的導覽功能,則可以搭配使用 SplitView。 |
StateTriggers | 使用新的 VisualState.StateTriggers 功能,您就可以視情況依據視窗高度/寬度,或依據自訂觸發程序來設定屬性。 之前,您必須使用程式碼來處理 Window SizeChanged 事件,並呼叫 VisualStateManager.GotoState。 |
Setter | 使用新的 VisualState.Setters 語法,您就可以使用簡化過的標記來定義 VisualStateManager 中的屬性變更。 之前,您必須使用 Storyboard 並建立動畫來套用屬性變更,例如將 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 取代 Binding,並取得改善的效能和可維護性。 |
清單的宣告式增量轉譯 (x:Phase) | 在 Windows 通用應用程式中,新的 x:Phase 屬性可讓您使用 XAML 代替程式碼來執行增量 (或階段式) 清單轉譯。 平移具有複雜項目的較長清單時,應用程式轉譯項目的速度可能無法跟上平移的速度,而造成不佳的使用者體驗。 階段式轉譯可讓您指定清單項目中個別元素的優先順序,使快速平移案例中只會轉譯清單項目中最重要的部分。 這會為您的使用者產生更順暢的平移體驗。 在 Windows 8.1 中,您可以處理 ContainerContentChanging 事件,並撰寫程式碼來以階段方式轉譯清單項目。 在 UWP 應用程式中,您可以使用 x:Phase 屬性以宣告方式完成階段式轉譯。 x:phase 與編譯的繫結 x:bind 搭配使用時,可讓您輕鬆地為資料範本中的每個繫結元素指定轉譯優先順序。 移動流覽時,轉譯項目工作會依據階段進行時間分配,以啟用增量項目轉譯。 |
UI 元素延遲載入 (x:deferLoadstrategy) | 在 Windows 通用應用程式中,新的 x:deferLoadstrategy 指示詞可讓您指定使用者介面要延遲載入的部分,這可以改進啟動效能並減少您應用程式的記憶體使用量。 例如,如果您的應用程式 UI 有某個資料驗證元素只有在輸入不正確的資料時才會顯示,則您可以延遲到需要時才載入該元素。 隨後,元素物件並不會在頁面載入時建立,而只會在有資料錯誤而需要將其新增至頁面的視覺化樹狀結構時才會建立。 |
SplitView | 新的 SplitView 控制項可讓您輕鬆地顯示和隱藏暫時性內容。 它通常用於最上層瀏覽狀況,例如「漢堡功能表」,其中瀏覽內容是隱藏的,並且會視使用者巨集指令的執行結果而在需要時滑入。 |
RelativePanel \(英文\) | RelativePanel 是一個新的版面配置面板,可讓您定位及排列彼此有關係或與父系面板有關係的子系物件。 例如,您可以指定某個文字應一律位於面板左側,而按鈕應一律對齊於文字下方。 沒有建立明確線性模式的使用者介面時,請使用 ReleativePanel,該介面會呼叫使用 StackPanel 或 Grid。 |
CalendarView | CalendarView 控制項可讓您輕鬆地使用可自訂的月份檢視和日期範圍來檢視和選取日期範圍。 CalendarView 支援如下限、上限及限制日期等功能,以限制可以選取的日期。 您也可以設定自訂密度列,以用來在特定日期顯示排程的一般「行程密度」。 |
CalendarDatePicker | CalendarDatePicker 是一個下拉式控制項,最適合從 CalendarView 挑選單一日期,例如星期幾或行事曆行程密度等重要內容資訊。 它類似于 DatePicker 控制項,但 DatePicker 是針對挑選已知日期進行最佳化,例如出生日期。 |
MediaTransportControls | 新的 MediaTransportControls 類別可讓您更輕鬆地自訂 MediaElement 的傳輸控制項。 在 Windows 8.1 中,您可以啟用 MediaElement 的內建傳輸控制項,或自行建立傳輸控制項來呼叫 MediaElement 方法。 現在您可以使用 MediaTransportControls 的內建功能,且仍然可以輕鬆地自訂適合您應用程式的外觀。 |
屬性變更通知 | 在 Windows 通用應用程式中,您可以接聽 DependencyObjects 上的屬性變更,甚至接聽沒有相對應變更事件的屬性。 通知的運作方式與事件相似,但實際上會公開做為回呼。 與事件處理常式一樣,回呼會使用寄件者引數,但不接受事件引數。 相反地,只會傳入屬性識別碼,以指出屬性。 透過這項資訊,您的應用程式可為多個屬性通知定義單一處理常式。 如需詳細資訊,請參閱 RegisterPropertyChangedCallback 與 UnregisterPropertyChangedCallback。 |
地圖 | MapControl 類別已更新,可提供 3D 影像與街景空中檢視。 這些新功能與先前的地圖功能,現在皆可供 Windows 通用應用程式使用。 使用下列 API 將對應新增至您的應用程式:Windows.UI.Xaml.Controls.Maps 與 Windows.Services.Maps。 若要立即在 Windows 通用應用程式中開始使用這些 API,請向 Bing 地圖開發人員中心索取金鑰。 如需詳細資訊,請參閱如何驗證地圖應用程式。 此外,電腦及手機使用者可以從 [設定] 應用程式下載離線地圖,這是 Windows 10 的新功能之一。 當有離線地圖可用時,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 是針對與全螢幕型應用程式搭配使用,以及針對使用邊緣手勢叫用所設計。 控制帳戶已針對 Windows 10 中視窗化應用程式和缺少邊緣手勢等問題進行更新。 隱藏的 AppBar.ClosedDisplayMode 之前僅能在 Windows Phone 上使用,現在所有裝置系列都已支援,讓您能夠在不同層級的命令提示之間選擇。 AppBar 預設會顯示最少提示,以便將 Windows 8.1 應用程式升級為 Windows 通用應用程式時提供您一致性,升級至 Windows 通用應用程式之後,您就不需要再依賴平台中的邊緣手勢支援。 |
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.ChooseItemContainer 事件,可改善資料集合中發生變更時,控制項的效能。 系統現在不會執行會重新顯示入口動畫的完整清單重設,而會保有目前在檢視中的項目以及專注和選取狀態;檢視區中的新項目和移除的項目會以動畫方式流暢地進出。 在資料集合中 (其中的容器未受到破壞) 進行變更後,應用程式可以快速地將任何「舊」項目與先前的容器比對,並跳過容器生命週期覆寫方法的進一步處理。 只會處理「新」項目,並與回收的或新的容器相關聯。 |
SelectRange 方法和 SelectedRanges 屬性 | 在 Windows 通用應用程式中,ListView 與 GridView 控制項現在可讓您以項目索引範圍 (而非項目物件參照) 方式選取項目。 以此方式說明選取項目會更有效率,因為不需要為每個選取的項目建立項目物件。 如需詳細資訊,請參閱 ListViewBase.SelectedRanges、ListViewBase.SelectRange 及 ListViewBase.DeselectRange。 |
新的 ListViewItemPresenter API | ListView 與 GridView 使用項目簡報者來為選擇項目與專注項目提供預設視覺效果。 在 UWP 應用程式中,ListViewItemPresenter 與 GridViewItemPresenter 有新的屬性,可讓您進一步自訂清單項目的視覺效果。 新的屬性為 CheckBoxBrush、CheckMode、FocusSecondaryBorderBrush、PointerOverForeground、PressedBackground 及 SelectedPressedBackground。 |
SemanticZoom 更新 | SemanticZoom 控制項現在在所有裝置系列中都有一致的 UWP 應用程式行為。 在放大檢視中與縮小檢視之間切換的預設動作是點選放大檢視中的群組標頭。 此行為與 Windows Phone 8.1 上的行為相同,但與使用捏合手勢進行縮放的 Windows 8.1 不同。 若要使用捏合縮小來變更檢視,請設定 SemanticZoom 之內部 ScrollViewer 上的 ScrollViewer.ZoomMode="Enabled"。 在 Windows 通用應用程式中,縮小檢視會取代放大檢視,且其大小會與它所取代的檢視相同。 此行為與 Windows 8.1 上的行為相同,但與 Windows Phone 8.1 不同;在 Windows Phone 8.1 中,縮小檢視會佔用整個螢幕大小,並呈現在所有其他內容之上。 |
DatePicker 與 TimePicker 更新 | DatePicker 與 TimePicker 控制項現在在所有裝置系列上都有一致的 Windows 通用應用程式實作。 它們在 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 會依據螢幕大小和輸入類型提供調適型行為。 您可以設定樞紐控制項的樣式,以提供類似索引標籤的行為,以及每個樞紐項目中不同的資訊檢視。 |
Text
功能 | 描述 |
---|---|
Windows 核心文字 API | 新的 Windows.UI.Text.Core 命名空間具有用戶端-伺服器系統,會將鍵盤輸入的處理集中到單一伺服器。 您可以使用它來操作自訂文字輸入控制項的編輯緩衝區。 文字輸入伺服器可確保文字輸入控制項的內容及其本身編輯緩衝區的內容,一律可透過應用程式與伺服器之間的非同步通訊管道保持同步。 |
向量圖示 | Glyphs 元素具備新的 IsColorFontEnabled 與 ColorFontPalleteIndex 屬性以支援彩色字型;現在您可以使用字型檔來轉譯以字型為基礎的圖示。 當您使用 ColorFontPalleteIndex 來執行調色盤切換時,可以使用不同的色彩集轉譯單一圖示;例如,顯示圖示的已啟用和已停用版本。 |
輸入法編輯器視窗事件 | 使用者有時會透過在文字輸入方塊正下方的視窗中顯示的輸入法編輯器來輸入文字 (通常用於東亞語言)。 您可以在 TextBox 與 RichEditBox 上使用 CandidateWindowBoundsChanged 事件與 DesiredCandidateWindowAlignment 屬性,來讓您的應用程式 UI 與 IME 視窗更完善地搭配使用。 |
文字組合事件 | 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 畫布中。 如果您需要一些想法,您可以參考 Windows 通用應用程式設計基本知識中 Cortana 特定的設計建議與 UX 指導方針。 |
檔案總管 | 新的 Windows.System.Launcher.LaunchFolderAsync 方法可讓您啟動 [檔案總管] 並顯示您指定的資料夾內容。 |
共用儲存體 | 新的 Windows.ApplicationModel.DataTransfer.SharedStorageAccessManager 類別與其方法,可讓您在使用 URI 啟用啟動其他應用程式時,透過傳遞共用權杖來與另一個應用程式共用檔案。 目標應用程式會兌換權杖,以取得來源應用程式的共用檔案。 |
設定 | 搭配 LaunchUriAsync 方法使用 ms-settings 通訊協定,顯示內建設定頁面。 例如,下列程式碼會顯示 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 是功能強大的小組共同作業裝置和大型螢幕平台,適用於從 Surface Hub 或是您已連接的裝置原生執行的 Windows 通用應用程式。 利用大型螢幕、觸控及手寫輸入,以及各種內建硬體 (例如攝影機與感應器) 的優點,針對您的商務特性設計及建立您自己的應用程式。 請參考 Windows 通用應用程式設計基本知識中 Surface Hub 特定的設計建議與 UX 指導方針。 這些文件說明 Windows 通用應用程式的回應式設計技術。 如需支援公用的共用應用程式的相關詳細資料,請參閱 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 裝置應用程式參與 AllJoyn 所驅動的物聯網 (IoT) 案例中的其他裝置。 如需關於 AllJoyn C API 的詳細資料,請於 AllSeen 聯盟下載文件。 使用此版本中包含的 AllJoynCodeGen 工具,以產生可用來啟用您裝置應用程式中 AllJoyn 案例的 Windows 元件。 Windows 10 IoT 核心版現在已適用於新型的小型裝置,可讓您使用 Windows 和 Visual Studio 建立「物聯網」(IoT) 裝置。 深入了解 Windows 開發人員中心上的 Windows IoT。 |
在行動裝置上列印 API (XAML) | 還有一組單一且整合的 API,可讓您跨裝置系列從您的 XAML 型 UWP 應用程式進行列印,包括行動裝置。 您現在可以使用 Windows.Graphics.Printing 和 Windows.UI.Xaml.Printing 命名空間中熟悉的列印相關 API,將列印功能新增至行動裝置應用程式。 |
電池 | Windows.Devices.Power 命名空間中的電池 API,可以讓應用程式清楚得知執行您應用程式之裝置所連接的任何電池。 建立電池物件以代表個別的電池控制器,或是所有電池控制器的彙總 (當由 FromIdAsync 或 AggregateBattery 個別建立時)。 使用 GetReport 方法傳回指示相對應電池的充電、容量及狀態的 BatteryReport 物件。 |
MIDI 裝置 | 新的 Windows.Devices.Midi 命名空間可以讓您建立與外部 MIDI 裝置通訊的 A=apps、可直接與 Microsoft GS MIDI 軟體合成器通訊的應用程式與外部裝置,以及多個用戶端同時存取單一 MIDI 連接埠的案例。 |
自訂感應器支援 | Windows.Devices.Sensors.Custom 命名空間可讓硬體開發人員定義新的自訂感應器類型,例如 CO2 感應器。 |
主控件卡片模擬 (HCE) | 主控件卡片模擬可讓您實作在作業系統中裝載的 NFC 卡片模擬服務,同時仍然能夠透過 NFC 無線電波與外部讀取器終端機通訊。 若要觸發背景工作以模擬透過 NFC 使用智慧卡,請使用 SmartCardTrigger 類別。 SmartCardTriggerType 列舉中的 EmulatorHostApplicationActivated 值可讓您的應用程式知道已經發生 HCE 事件。 |
圖形
功能 | 描述 |
---|---|
DirectX | Windows 10 中的 DirectX 12 導入了下一版 Microsoft Direct3D,也就是 DirectX 核心的 3D 圖形 API。 Direct3D 12 圖形可支援低層級、類似主控台 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 媒體元素,調適性播放隨即開始。 串流的屬性 (例如可用、最小及最大位元速率) 可供查詢,並在適當情況下設定。 |
媒體基礎轉換 (MFT) 的媒體基礎轉碼視訊處理器 (XVP) 支援 | 使用 Media Foundation Transforms (MFT) 的 Windows 應用程式現在可以使用 Media Foundation Transcode Video Processor (XVP) 來轉換、縮放及轉換原始視訊資料:即使在 Microsoft DirectX 影片加速 (DXVA) 模式下,新的 MF_XVP_CALLER_ALLOCATES_OUTPUT 屬性也可以輸出到呼叫端配置的紋理。 新的 IMFVideoProcessorControl2 介面可讓您的應用程式啟用硬體效果、查詢支援的硬體效果,以及覆寫影片處理器所執行的旋轉作業。 |
轉碼 | 新的 MediaProcessingTrigger API 可讓您的應用程式在背景工作中執行媒體轉碼,因此即使終止前景應用程式,轉碼作業仍然可以繼續執行。 |
MediaElement 媒體失敗事件 | 在通用 Windows app 中,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 支援改善 | Windows.Data.Json 命名空間現在在偵錯工作階段期間轉換 JSON 物件時,對於現有的標準定義和開發人員體驗提供完善的支援。 |
安全性
功能 | 描述 |
---|---|
ECC 加密 | Windows.Security.Cryptography 命名空間中的新 API 可支援橢圓曲線密碼編譯 (ECC),這是以有限欄位的橢圓曲線為基礎的公開金鑰密碼編譯實作。 ECC 的演算方式比 RSA 更複雜,所提供的金鑰較小,可降低記憶體使用量,並改善效能。 它可為 Microsoft 服務和客戶提供 RSA 金鑰與 NIST 核准之曲線參數的替代方案。 |
Microsoft Passport | Microsoft Passport 是驗證的替代方法,可將密碼取代為非對稱密碼編譯和手勢。 Credentials 命名空間內的類別 (例如 KeyCredentialManger) 可以讓開發人員輕鬆地使用 Microsoft Passport,而不需要複雜的加密或生物特徵。 |
Microsoft Passport for Work | Microsoft Passport for Work 是一種登入 Windows 的替代方法,它會使用您未使用密碼、智慧卡及虛擬智慧卡的 Azure Active Directory 帳戶。 您可以選擇要停用還是啟用此原則設定。 |
權杖代理人 | 權杖代理人是一種新的驗證架構,可讓應用程式輕鬆地連接到線上身分識別提供者 (如 Facebook)。 諸如帳戶使用者名稱和密碼管理和精簡型 UI 等功能,可大幅改善使用者的驗證經驗。 |
系統服務
功能 | 描述 |
---|---|
Power | 您的 Windows 傳統型應用程式現在可以在省電模式使用或停用時收到通知。 藉由回應變動的電力情況,您的應用程式有機會延長電池使用時間。 GUID_POWER_SAVING_STATUS:使用這個新的 GUID 與 PowerSettingRegisterNotification 函式,即可在執行或停止執行省電模式時收到通知。 SYSTEM_POWER_STATUS:此結構已更新,以支援省電模式。 第四個成員 SystemStatusFlag (先前名為 Reserved1) 現在可指出省電模式是否已啟用。 使用 GetSystemPowerStatus 函式來抓取這個結構的指標。 |
版本 | 您可以使用 Version Helper 函式判斷作業系統版本。 對於 Windows 10,這些協助程式函式包含新的函式 IsWindows10OrGreater。 當您想要判斷系統版本時,您應該使用協助程式函式,而不是取代的 GetVersionEx 與 GetVersion 函式。 如需如何取得系統版本的詳細資訊,請參閱取得系統版本。 如果您是使用取代的 GetVersionEx 或 GetVersion 函式來取得 OSVERSIONINFOEX 或 OSVERSIONINFO 結構中的版本資訊,請注意這些結構包含的版本號碼會從 6.3 (適用於 Windows 8.1 與 Windows Server 2012 R2) 增加到 10.0 (適用於 Windows 10)。 如需作業系統版本號碼的詳細資訊,請參閱作業系統版本。 在您的應用程式中,您也需要特別以 Windows 8.1 或 Windows 10 為目標,以取得這些利用 GetVersionEx 或 GetVersion 函式取得之版本的正確版本資訊。 如需如何針對這些 Windows 版本以應用程式為目標的資訊,請參閱以 Windows 為目標的應用程式。 |
使用者資訊 | Windows.System 命名空間中的新 API 可讓您輕鬆存取使用者的相關資訊,例如使用者名稱和帳戶圖片。 它也可讓您回應登入和登出之類的使用者事件。 |
記憶體管理和分析 | Windows.System 中記憶體分析 API 的支援已經延伸至所有平台,且已透過新的類別和函式加強其整體功能。 |
儲存體
功能 | 描述 |
---|---|
適用於 Windows Phone 的檔案搜尋 API | 身為應用程式發行者,您可以藉由將延伸模組新增至應用程式資訊清單,向其他應用程式註冊應用程式,以共用儲存空間資料夾。 然後呼叫 Windows.Storage.ApplicationData.GetPublisherCacheFolder 方法取得共用的儲存位置。 Windows 執行階段應用程式的強化安全性模型通常會防止應用程式相互共用資料。 但是,對於來自相同發行者的應用程式,以每個使用者為基礎共用檔案和設定,這非常有用。 |
工具
功能 | 描述 |
---|---|
Visual Studio 中的即時視覺化樹狀結構 | Visual Studio 具有新的即時視覺化樹狀結構功能。 您可以在偵錯時使用此功能,以快速瞭解應用程式的視覺化樹狀結構的狀態,並探索元素屬性的設定方式。 它也可讓您在應用程式執行時變更屬性值,如此便可調整和實驗而無需重新啟動。 |
追蹤記錄 | 追蹤記錄是適用於使用者模式應用程式與核心模式驅動程式的新事件追蹤 API;它是建置在 Windows 事件追蹤 (ETW) 上。 這個 API 提供簡化的方式來檢測程式碼,並包括含有事件的結構化資料,而不需要個別的檢測資訊清單 XML 檔案。 WinRT、.NET 及 C/C++ TraceLogging API 可用來服務不同的開發人員對象。 |
使用者體驗
功能 | 描述 |
---|---|
語音辨識 | 通用 Windows 平台現在可支援較長聽寫案例的連續語音辨識。 請參閱如何在語音互動文件中啟用連續聽寫。 |
不同應用程式平台之間的拖放功能 | 新的 Windows.ApplicationModel.DataTransfer.DragDrop 命名空間將拖放功能帶入 Windows 通用應用程式。 之前,一般的傳統型程式拖放案例 (例如將資料夾中的文件拖曳到 Outlook 電子郵件訊息中以利附加) 在 Windows 通用應用程式是不可能的。 使用這些新的 API,您的應用程式將可讓使用者輕鬆地在不同的 Windows 通用應用程式與桌面之間移動資料。 為了支援應用程式之間的拖放功能,這些新的 API 已新增至 XAML: 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 方法,來使用您自己自訂的 XAML 內容取代預設的視窗標題列內容。 您的 XAML 會被視為「系統色彩」,因此 Windows 將會處理輸入事件,而非處理您的應用程式。 這表示使用者即使按一下您的自訂標題列內容,仍可拖曳視窗調整其大小。 |
Web
功能 | 描述 |
---|---|
Microsoft Edge | Microsoft Edge 是專為 Windows 10 建置的全新預設瀏覽器。 如需更多資訊及 Microsoft Edge 中所包含之開發人員功能與標準的概觀,包括最新的 JavaScript 功能,請參閱 Microsoft Edge 開發人員指南。 |
WebView 瀏覽 | WebView 控制項使用與新的 Microsoft Edge 瀏覽器相同的轉譯引擎。 這可提供最精確且符合標準規範的 HTML 轉譯模式。 |
關閉執行緒 WebView | 您可以指定 WebView.ExecutionMode 來啟用在個別背景執行緒中處理及顯示 Web 內容的功能。 這可以改善某些特殊案例下的效能。 |
WebView.UnsupportedUriSchemeIdentified 事件 | 新的 WebView.UnsupportedUriSchemeIdentified 事件可讓您決定您的應用程式應如何使用不支援的 URI 配置。 您可以處理此事件,讓您的應用程式針對不支援的 URI 配置提供自訂處理方式。 對於 HTML WebView 控制項,請參閱 MSWebViewUnsupportedUriSchemeIdentified 事件。 |
WebView.NewWindowRequested 事件 | 新的 WebView.NewWindowRequested 事件可讓您在 WebView 中的指令碼要求新瀏覽器視窗時回應。 對於 HTML WebView 控制項,請參閱 MSWebViewNewWindowRequested 事件。 |
WebView.PermissionRequested 事件 | 新的 WebView.PermissionRequested 事件可讓 WebView 內容利用豐富的新 HTML5 API,而 HTML5 API 則需要來自使用者的特殊使用權限,例如地理位置。 對於 HTML WebView 控制項,請參閱 MSWebViewPermissionRequested 事件。 |
WebView.UnviewableContentIdentified 事件 | 新的 WebView.UnviewableContentIdentified 事件可讓您在 WebView 瀏覽至非網路內容 (如 PDF 檔案或 Office 文件) 時回應。 對於 HTML WebView 控制項,請參閱 MSWebViewUnviewableContentIdentified 事件。 |
WebView.AddWebAllowedObject 方法 | 您可以呼叫新的 WebView.AddWebAllowedObject 方法來將 WinRT 物件插入 XAML WebView,然後從該 WebView 中代管的受信任 JavaScript 呼叫其函式。 例如,網路內容可以透過要求其父系應用程式呼叫 ToastNotificationManager WinRT API 來顯示系統通知。 對於 HTML WebView 控制項,請參閱 addWebAllowedObject 方法。 |
WebView.ClearTemporaryWebDataAsync 方法 | 當使用者與 XAML WebView 內部的網路內容互動時,WebView 控制項會依據該使用者的工作階段來快取資料。 您可以呼叫新的 ClearTemporaryWebDataAsync 方法來清除此快取。 例如,您可以在一位使用者登出應用程式,而使另一位使用者無法存取先前工作階段的任何資料時,將快取清除。 |