Windows 應用程式 SDK 的的穩定通道版本資訊

穩定通道提供的 Windows 應用程式 SDK 版本可支援生產環境的應用程式使用。 使用穩定版 Windows 應用程式 SDK 的應用程式也可以發布至 Microsoft Store。

目前有下列穩定通道版本可用:

如果想要將現有應用程式從舊版的 Windows 應用程式 SDK 升級至較新版本,請參閱將現有專案更新至最新版本的 Windows 應用程式 SDK

Windows 應用程式 SDK 的下載項目

注意

Windows 應用程式 Visual Studio 延伸模組 (VSIX) 不再以獨立下載的形式發布。 它們改在 Visual Studio 內 的Visual Studio Marketplace 提供。

第 1.5 版

版本 1.5.2 (1.5.240404000)

這是 Windows App SDK 的一個服務版本,其中包括針對 1.5 版本的重要錯誤修復和 Widget 資料提供程序的新功能。

Widget 資料提供者更新

  • 現在,資料提供者可以在 Widgets Dashboard 中顯示公告:
    • 新的 FeedManager.TryShowAnnouncementAPI 允許 Feed Provider 請求 Widget Dashboard 顯示他們的公告。 若要顯示您的公告,請建立一個FeedAnnouncement物件並喚醒 FeedManager.TryShowAnnouncementAPI。
    • Feed 公告將在工作列中顯示自己的徽章,可以使用 FeedAnnouncementAPI 進行自訂。
  • Feed 提供者現在可以選擇在使用者與其互動時接收有關其提供者的分析和錯誤報告資訊。 若要選擇加入,請由您的提供者實作IFeedProviderAnalytics和/或IFeedProviderErrors介面。

資料提供者更新包括以下新的 API:

Microsoft.Windows.Widgets.Feeds.Providers
 
    FeedAnalyticsInfoReportedArgs
    FeedErrorInfoReportedArgs
    FeedManager
        SendMessageToContent
        TryShowAnnouncement
 
    FeedMessageReceivedArgs
    FeedResourceRequest
    FeedResourceRequestedArgs
    FeedResourceResponse
    IFeedAnnouncementInvokedTarget
    IFeedManager2
    IFeedProviderAnalytics
    IFeedProviderErrors
    IFeedProviderMessage
    IFeedResourceProvider
Microsoft.Windows.Widgets.Notifications
 
    AnnouncementActionKind
    AnnouncementTextColor
    FeedAnnouncement
    FeedAnnouncementInvokedArgs

錯誤修正

  • 修復了當主顯示器DispatcherTimer未以 60 Hz 執行時,事件將不會在正確的時間觸發的問題。
  • 修復了當縮放比例不是 100% 時,文字框輸入法編輯器 (IME) 視窗位置不正確的問題。 關於更多資訊,請參閱 GitHub 問題 #9382
  • 修復了從另一個應用程式開始的拖放操作可能不允許正確的複製/移動/鏈接放置操作的問題。
  • 修復了重置 ListView ItemsSource並立即獲得焦點時可能發生的崩潰。
  • 修正了彈出視窗/浮出ShouldConstrainToRootBounds="false"控制項不套用任何繼承的比例變換的問題。 有關詳細資訊,請參閱 GitHub 問題 #9118#9433
  • 修正了當 Composition 物件在動畫仍在執行時被銷毀時可能發生的當機。
  • 修復了NavigationView::RevokeNavigationViewItemRevokers中關閉時可能發生的崩潰。

版本 1.5.1 (1.5.240311000)

這是 Windows 應用程式 SDK 的維修版本,其中包含 1.5 版的重要錯誤修正。

  • 修正了由於無法複製“map.html”而導致獨立應用程式可能無法設定的問題。
  • 修正了由於拒絕MapControl有效憑證而無法初始化的問題。 關於更多資訊,請參閱 GitHub 問題 #9324
  • 修正了MapControl載入藍色背景的問題。 關於更多資訊,請參閱 GitHub 問題 #9377
  • 修正了點選 V 形符號時NavigationViewItem無法正確展開或折疊的問題。 這也導致在PaneDisplayMode="Top"模式下點選 V 形時選單顯示為空白。 有關詳細資訊,請參閱 GitHub 問題 #9423 #9426
  • 修正了使用觸控或筆點選NavigationViewItem會阻止該項目響應任何未來輸入的問題。 關於更多資訊,請參閱 GitHub 問題 #9429
  • 修正了在點選NavigationView.PaneFooter區域中的項目時發生的當機。 關於更多資訊,請參閱 GitHub 問題 #9396
  • 修正了選單中的圖示有時顯示在錯誤位置的問題。 關於更多資訊,請參閱 GitHub 問題 #9409
  • 修復了丙烯酸樹脂在從窗戶切換回來之前不會顯示在選單上的問題。 關於更多資訊,請參閱 GitHub 問題 #9406
  • 修正了TextBox/RichEditBox初始化期間可能發生的崩潰。 關於更多資訊,請參閱 GitHub 問題 #9216
  • 修正了NavigationView拋出並擷取破壞的一些雜訊異常。
  • 修正了由於錯誤的PointerCaptureLost訊息觸發而導致「捏合縮放」手勢有時會顯示為平移或點選的問題。

第 1.5 版

下列各節說明 1.5 版的新功能、更新功能和已知問題。

在現有的 Windows 應用程式 SDK 1.4 應用程式中,您可以將 Nuget 套件更新為 1.5.240227000 (請參閱使用 NuGet 套件管理員 在 Visual Studio 安裝和管理套件中的更新套件一節)。

如需更新的執行階段和 MSIX,請參閱 Windows 應用程式 SDK 的下載項目

XAML Islands 執行階段和關閉更新

以 XAML Islands 為基礎的 WinAppSDK 1.4 和 WinAppSDK 1.5 應用程式在關閉任何執行緒的最後一個 XAML 視窗時,會有不同的行為。

  • 在 WinAppSDK 1.4,執行緒的最後一個 XAML 視窗關閉時,XAML 執行階段一律會退出執行緒的事件迴圈。
  • 而在 WinAppSDK 1.5:
    • 如果是 WinUI 桌面應用程式,預設行為仍然和 WinAppSDK 1.4 一樣。
    • 如果您將 XAML 用於 DesktopWindowXamlSource (「XAML Islands」) API,現在的預設行為是 XAML 不會自動退出執行緒的事件迴圈。
    • 在兩種模式,您都可以設定 Application.DispatcherShutdownMode 屬性來變更行為。

如需更多資訊,請在文件仍提供期間參閱文件了解 Application.DispatcherShutdownMode 屬性。 此設定實現了 GitHub 提案編號 8492

以 XAML Islands 為基礎的 WinAppSDK 1.4 和 WinAppSDK 1.5 應用程式在 XAML 執行階段的存留期方面,有不同的行為:

  • 在 WinAppSDK 1.4,如果特定執行緒上的所有 WindowsXamlManagerDesktopWindowXamlSource 物件都已關閉,或在該執行緒執行的 DispatcherQueue 已關閉,執行緒上的 XAML 執行階段就會關閉 (在此例中,XAML 執行階段會在 DispatcherQueue.FrameworkShutdownStarting 期間關閉)。
  • 在 WinAppSDK 1.5 中,在執行緒上執行的 DispatcherQueue 關閉,執行緒上的 XAML 執行階段才會關閉 (XAML 執行階段一律會在 DispatcherQueue.FrameworkShutdownStarting 階段中關閉)。

如需更多資訊,請在文件仍提供期間參閱文件了解 WindowsXamlManager 類別。

WindowsXamlManager.InitializeForCurrentThread() 方面有行為上的差異:

  • 在 WinAppSDK 1.4 中,WindowsXamlManager.InitializeForCurrentThread() 會對每個呼叫都傳回 WindowsXamlManager 物件的不重複執行個體。
  • 在 WinAppSDK 1.5,如果執行緒上已存在執行個體,WindowsXamlManager.InitializeForCurrentThread() 就會傳回現有執行個體。 Close/Dispose() 現在會遭到忽略。

WinUI 地圖控制項

WinUI Maps 控制項已經推出! 此控制項由 WebView2 和 Azure Maps 驅動,可提供下列功能:

  • 以地圖按鈕或觸控方式移動與縮放。
  • 將地圖樣式變更為衛星、地形或街道檢視。
  • 以程式設計方式將開發人員可自訂圖示的互動式圖釘新增到地圖。
  • 開發人員可自訂地圖初次載入時的置中位置。
  • 開發人員可控制要隱藏或顯示移動、縮放和地圖樣式的按鈕。

WinUI 3 地圖控制

注意

若要使用 Maps 控制項,您需要 Azure 地圖金鑰。 如要建立金鑰,請參閱 Azure 地圖文件中建立 Web 應用程式的頁面

Maps 控制項是全新功能,如有意見,歡迎告知我們,以便評估日後調整方向!

新增 SelectorBar 控制項

我們在 1.5 新增了 SelectorBar 控制項,可讓使用者切換多種資料檢視。 此控制項在我們過去的 1.5 藍圖中稱為「SegmentedControl」。

WinUI 3 選擇器欄控制

CommandBarFlyout 主要命令的標籤

CommandBarFlyout 的視覺效果已更新,如果您已在 AppBarButton 設定 Label 屬性,它就會在主要命令區域中顯示項目的文字標籤。 之前,CommandBarFlyout區域中的主要命令只會顯示圖示,但現在已可同時顯示圖示和標籤,讓使用性更提升。

WinUI 3 CommandBarFlyout 標籤

WebView2 支援自訂環境/選項

WinUI WebView2 控制項現在已提供可讓您使用自訂 CoreWebView2EnvironmentCoreWebView2ControllerOptions 來自訂基礎 CoreWebView2 物件的功能。 這可讓應用程式作者指定載入 WebView2Runtime 的替代路徑、選擇使用不同的 UserDataFolder,或設定 IsPrivateModeEnabledScriptLocale 等選項。

支援 .NET 8

我們在最近的 1.4 維修版本新增了 .NET 8 的支援,但仍會保留使用平台特定 RID 時的警告。 1.5 則已經補完此功能,因此不再提供警告。

改善偵錯能力和來源可用性

我們現在會將 microsoft-ui-xaml 存放庫程式碼的 Github 來源伺服器資訊插入公用符號,讓偵錯工具可以自動下載原始程式碼。 我們也對整個 WinAppSDK 的符號進行其他修正和改善,藉此提升偵錯體驗。

改良偵錯版面配置週期的功能

WinUI 應用程式的偵錯版面配置週期使用起來並不友善,因此在 1.5 的 DebugSettings 物件現在會提供選項,改善版面配置程序的記錄和中斷點,以便更輕鬆地在應用程式中對版面配置週期進行偵錯和修正。

WinAppSDK 提供的其他新功能

  • 已新增 PublishSingleFile 部署模型的支援功能。 如需 PublishSingleFile 詳細資訊,請參閱單一檔案部署文件
  • 改善螢幕助讀程式支援、文字縮放支援和其他協助工具功能。
  • 根據 GitHub 中優先的待處理錯誤,提供各種穩定性和效能改良。

即將個別發布的新功能

新版的 C# 和 C++ WinAppSDK Visual Studio 範本即將透過 Visual Studio Marketplace 發布,預計在 1.5 版的幾週後上架。 在新版本中,範本的發布可能會獨立於 WinAppSDK 的發布之外,讓我們在為客戶提供更新時更有彈性。

其他已事先規劃的功能

我們公告過幾項放在藍圖上的功能,而在 1.5 版也有所進展,但尚未完成。 我們會將這些功能放入 1.6 的時間表內繼續開發。

  • 索引標籤化的視窗
  • WebView2 支援拖放功能
  • 資料表檢視和筆跡控制項的調查功能

我們已暫時將動態光源從藍圖中移除。

已知問題

  • 使用的程式庫中包含 .xaml 檔案這類資源時,執行階段可能會顯示錯誤訊息,指出系統找不到這些資源。 這種情況下,您可能需要在專案檔插入 <ShouldComputeInputPris>true</ShouldComputeInputPris>,確保納入這些資源。
  • 按一下 NavigationViewItem 箭號後,單次點擊已無法再正確展開或收合。 按兩下仍然有效,按一下 NavigationViewItem 的其他位置也是。

錯誤修正

  • 已修正 StackPanel 會套用間距至收合項目的問題。 關於更多資訊,請參閱 GitHub 問題 #916
  • 已修正捲動控制項無法在關閉其他應用程式視窗後繼續運作的問題。 如需詳細資訊,請參閱 GitHub 問題 #9292#9355
  • 已修正 DebugSettings.EnableFrameRateCounter 設為 true 時,在第一個畫面顯示之前發生當機的問題。 關於更多資訊,請參閱 GitHub 問題 #2835
  • 已修正 C++ 中某些標頭不包含必要相依性的潛在編譯錯誤。 請注意,變更 #include 順序可能會對某些應用程式有影響,例如,如果應用程式使用 2023 之前的 C++/WinRT 版本,IInspectable 可能會發生編譯錯誤。 關於更多資訊,請參閱 GitHub 問題 #9014
  • 已修正 ElementName 繫結無法在 ItemsRepeaterDataTemplate 當中運作的問題。 關於更多資訊,請參閱 GitHub 問題 #560
  • 已修正在 Visual Studio 中執行應用程式時,如果應用程式內工具列已啟用則會當機的問題。 需要 Visual Studio 17.8 Preview 2 或之後的版本,才能取得完整修正。 關於更多資訊,請參閱 GitHub 問題 #8806
  • 已修正 AnnotatedScrollbar 有時會在快速捲動時當機的問題。
  • 已修正功能表文字有時會截斷的問題。
  • 已修正教學提示無法接收正確焦點的問題。 關於更多資訊,請參閱 GitHub 問題 #3257
  • 已修正將 TeachingTipTailVisibility 設為於啟動時 Collapsed 會造成應用程式當機的問題。 關於更多資訊,請參閱 GitHub 問題 #8731
  • 已修正使用程式庫時系統會如何處理 PRI 檔案的問題。 關於更多資訊,請參閱 GitHub 問題 #8857
  • 已修正 1.5-experimental2 版本中投影 DLL 無法產生的問題。 關於更多資訊,請參閱 GitHub 問題 #4152
  • 已修正 RichEditBox 文字格式化快顯示窗的省略符號按鈕無法正確顯示動作清單的問題。 關於更多資訊,請參閱 GitHub 問題 #9140
  • 已修正 ListView 無法正確處理鍵盤加速器的問題。 關於更多資訊,請參閱 GitHub 問題 #8063
  • 已修正使用 AccessKey 關閉視窗時的存取違規問題。 關於更多資訊,請參閱 GitHub 問題 #8648
  • 已修正使用 AccessKey 關閉視窗時當機的問題。 關於更多資訊,請參閱 GitHub 問題 #9002
  • 已修正 MenuBar 中的 MenuFlyoutItem 文字對齊受到影響的問題。 關於更多資訊,請參閱 GitHub 問題 #8755
  • 已修正反白文字無法在按右鍵時維持反白的問題。 關於更多資訊,請參閱 GitHub 問題 #1801
  • 已修正閒置視窗關閉時造成應用程式當機的問題。 關於更多資訊,請參閱 GitHub 問題 #8913
  • 已修正以滑鼠中鍵滑動並隨後立即按左鍵時導致應用程式停格的問題。 關於更多資訊,請參閱 GitHub 問題 #9233
  • 已修正在使用自訂 NavigationViewItem時,導致應用程式在啟動時當機的問題。 關於更多資訊,請參閱 GitHub 問題 #8814
  • 修正了省略號按鈕會錯誤產生錯誤的 NavigationView 問題。 關於更多資訊,請參閱 GitHub 問題 #8380
  • 修正了 SystemBackdrop 在多視窗應用程式中無法正確渲染的問題。 關於更多資訊,請參閱 GitHub 問題 #8423
  • 修正了插入到 ObservableCollection 開頭時的重複問題。 關於更多資訊,請參閱 GitHub 問題 #8370

1.4 版

版本 1.4.5 (1.4.240211001)

這是 Windows 應用程式 SDK 的維修版本,其中包含 1.4 版的重要錯誤修正。

  • 已修正在使用滑鼠滾輪捲動同時按下滑鼠按鈕可能造成應用程式靜止的問題。 關於更多資訊,請參閱 GitHub 問題 #9233
  • 已修正參照 NuGet 套件鏈時資產重複的問題。 關於更多資訊,請參閱 GitHub 問題 #8857
  • 已修正多個 BreadcrumbBar 問題,包括記憶體流失、省略號功能表空白時當機,以及省略號功能表在視窗內遭受錯誤限制。
  • 已修正釋放圖形資源時關機可能發生當機的問題。

版本 1.4.4 (1.4.231219000)

這是 Windows 應用程式 SDK 的維修版本,其中包含 1.4 版的重要錯誤修正。

  • 已修正 WinUI 3 診斷安全性問題。
  • 已修正密碼方塊透過觸控啟用時無法顯示螢幕鍵盤的輸入問題。 關於更多資訊,請參閱 GitHub 問題 #8946
  • 已修正 Microsoft.UI.Xaml.Controls.dll 檔案大小會意外增長的問題。
  • 已修正設定焦點時可能導致當機的 CommandBarFlyout 問題。
  • 已更新 Windows 應用程式 SDK 對 .NET 8 RID 特定資產處理方式的支援。
  • 已修正某些交換鏈位置或延展錯誤的問題。

版本 1.4.3 (1.4.231115000)

這是 Windows 應用程式 SDK 的維修版本,其中包含 1.4 版的重要錯誤修正。

  • 已修正功能表顯示時可能會短時間內沒有背景的問題。
  • 已修正特定多監視器情境可能發生當機的問題。
  • 已修正操作功能表可能顯示在螢幕外的問題。
  • 已修正視窗樣式和最大化行為的問題。 關於更多資訊,請參閱 GitHub 問題 #8996
  • 已修正 Islands 的焦點可能會遭到其他控制項意外擷取的問題。
  • 已修正 NavigationView 的索引標籤順序問題。
  • 已修正了在標題列上方可能顯示白色列的轉譯問題。 關於更多資訊,請參閱 GitHub 問題 #8947
  • 各種效能修正。

版本 1.4.2 (1.4.231008000)

這是 Windows 應用程式 SDK 的維修版本,其中包含 1.4 版的重要錯誤修正。

  • 已修正記憶體和物件配置過多而造成 explorer.exe 當機的問題。
  • 已修正與標題列互動時返回按鈕無法正常運作的問題。
  • 已修正多次包含的來源檔案會產生警告的問題。
  • 已修正操作功能表效能受影響的問題。
  • 已修正目標 .exe 始終對 WindowsApps 資料夾中的套件指向相同位置的 .lnk 捷徑問題。
  • 已修正特定字型的 Indic 文字無法正確轉譯的 DWriteCore 問題。
  • 已修正清單檢視中鍵盤無法以 Tab/Shift + Tab 來回瀏覽巢狀選取的項目的問題。
  • 已修正第二次展開 ComboBox 後,觸控會中斷 ComboBox 項目捲動的問題。 關於更多資訊,請參閱 GitHub 問題 #8831
  • 已修正 WinAppSDK 套件無法為某些語言加入 WinUI 當地語系化資源的問題。
  • 已修正檔案總管和 XAML 在顯示使用者偏好語言時不一致的問題。
  • 已修正檔案總管的使用中索引標籤下方顯示細線的工藝問題。
  • 已修正某些提供架構的鍵盤快速鍵並未正確當地語系化的問題。 關於更多資訊,請參閱 GitHub 問題 #2023
  • 已修正點選 RepeatButton 控制項時重複捲動的問題。
  • 已修正 WinAppSDK 安裝程式 .exe,以取得正確的的資源版本資訊。

版本 1.4.1 (1.4.230913002)

這是 Windows 應用程式 SDK 的維修版本,其中包含 1.4 版的重要錯誤修正。

  • 已修正效能問題,改善第一個畫面顯示的時間。
  • 已修正功能表不遵守 RequestedTheme 的問題。 舉例來說,該問題可能導致白色背景上顯示白色文字。 關於更多資訊,請參閱 GitHub 問題 #8756
  • 已修正壓克力背景有時會在某些功能表中變成完全透明的問題。
  • 已修正 XAML 有時會造成 Windows 不必要地重新繪製桌面桌布的問題。
  • 已修正 TabNavigation = LocalTabNavigation = Cycle 針對 ListViewGridView 的支援功能,現在除了箭頭鍵之外,您還能使用 TAB 在標頭和項目之間來回瀏覽。
  • 已修正關閉工具提示時產生部分雜訊例外的問題。 關於更多資訊,請參閱 GitHub 問題 #8699

1.4 版

下列各節說明 1.4 版的新功能、更新功能和已知問題。

在現有的 Windows 應用程式 SDK 1.3 應用程式中,您可以將 Nuget 套件更新為 1.4.230822000 (請參閱使用 NuGet 套件管理員 在 Visual Studio 安裝和管理套件中的更新套件一節)。

如需更新的執行階段和 MSIX,請參閱 Windows 應用程式 SDK 的下載項目

自訂標題列 + AppWindow 標題列合併

WinUI 3 自訂標題列會使用 AppWindow 標題列實作及 NonClientInputPointerSource API (也就是 Windows 應用程式 SDK 1.4)。 因此,這兩種標題欄實作現在的行為方式都一樣,也有相同的功能和限制。 此設定已經完全向後相容至所有支援的案例,任何具有自訂定義標題列的應用程式都會按照以前的方式運作。 但是,對於可能初次使用自訂標題列的 WinUI 3 開發人員來說,現在已可藉由善用新功能來更容易瞭解與使用這些功能:

  • 較佳的預設情境是開發人員並未特別定義標題欄元素 (取代 WinUI 2 的後援標題列)
  • 標題列的不同拖曳區域,可讓您在非用戶端區域 (標題列區域) 的任何部分建立多個拖曳區域並放置可點擊的控制項
  • 應用程式範圍內可拖曳的區域,可放置於應用程式中任何位置,或讓整個應用程式可拖曳
  • 加強佈景主題支援,取代以資源為基礎的佈景主題
    • 由於拖曳區域透明,所以每次都會隨應用程式的佈景主題變化
  • 更多自訂功能:隱藏最小化、最大化和關閉按鈕;將系統圖示放在標題列中;或讓不同區域擔任標題按鈕來接收 NCHITTEST 回應
  • 開發人員自主性更高,可讓您混用與配對 AppWindow 標題列 API,例如將較高層級的 WinUI 3 API 用於多數情境,但將 AppWindow API 混用在較低層級的控制中

小工具更新

新增三種新介面,可供小工具提供者實作:IWidgetProvider2IWidgetProviderAnalyticsIWidgetProviderErrorsIWidgetProvider2 可讓提供者回應使用者叫用的自訂動作,等同於第一方小工具可提供的功能。 提供者可使用 IWidgetProviderAnalyticsIWidgetProviderErrors 為小工具收集遙測資料;小工具的分析和失敗事件都會通知對應的小工具提供者。 WidgetCustomizationRequestedArgsWidgetAnalyticsInfoReportedArgsWidgetErrorInfoReportedArgs 類別會用於通知相關資訊,以便支援新功能。

XAML Islands 不再是實驗版本

XAML Islands 和基礎的 ContentIslands 平台已不再是實驗版本。

  • 目前 XAML Islands 僅接受過在 C++ 應用程式使用的測試。 此版本不包含任何便利的包裝函式元素供 WPF 或 WinForms 使用。
  • DesktopWindowXamlSource與相關類型已新增到 XAML Islands 的 Microsoft.UI.Xaml.Hosting 命名空間。 XamlRoot.ContentIslandEnvironment已新增,有助於存取元素的基礎 Island 資訊。
  • 許多新類型的 Microsoft.UI.Content 命名空間和 Microsoft.UI.Input 命名空間已推出,可當作 XAML Islands 的基礎支援,或可在沒有 XAML 時使用此 ContentIslands 功能。
  • 新的 DragDropManager (加上相關類型) 已新增到 Microsoft.UI.Input.DragDrop 命名空間供 Island 情境使用。

ItemsView

我們即將推出名稱為 ItemsView 的新清單控制項,以及對應的實體 ItemContainer 類別。 ItemContainer 是一種輕量的容器,內建選取狀態和視覺,可輕易包覆所需內容,並搭配 ItemsView 使用於集合控制項情境。

  • 新的 ItemsView 控制項會顯示資料集合。 ItemsView 類似於 ListViewGridView 控制項,但在組建時使用的是 ItemsRepeaterScrollViewItemContainerItemCollectionTransitionProvider 元件。 它提供的獨特功能可用於插入自訂 LayoutItemCollectionTransitionProvider 實作。 其他關鍵優勢還有即時切換版面配置,同時保留項目選擇的功能。 內部的 ScrollView 控制項還具備 ListView/GridViewScrollViewer 控制項不提供的功能,例如在程式設計的捲動中控制動畫。
    • ItemsRepeater 新的 ItemTransitionProvider 屬性 (和新的 ItemsView 控制項) 可讓您針對該控制項,指定讓 ItemCollectionTransitionProvider 物件控制轉場動畫。 CreateDefaultItemTransitionProvider 方法已新增到 Layout,可讓版面配置物件提供隨附的遞補轉換,以備您沒有針對 ItemsView 控制項提供明確設定時之需。
    • 使用 Layout 新的 IndexBasedLayoutOrientation 屬性時,如有設定項目的版面配置方向,該方向會以項目在來源集合中的索引為依據。 預設值是 IndexBasedLayoutOrientation.None。 自訂版面配置是以呼叫新的 (受保護的) SetIndexBasedLayoutOrientation 方法來設定此屬性。
    • VirtualizingLayoutContext 新的 VisibleRect 屬性會在與 Layout 有關聯的 FrameworkElement 中取得可見的檢視區矩形。 受保護的虛擬 VirtualizingLayoutContext.VisibleRectCore 方法可以覆寫,藉此提供會從 VisibleRect 屬性傳回的值。
  • 新的 LinedFlowLayout 類別通常用於配置 ItemsView 集合控制項的項目。 它在顯示一系列相片時特別實用。 它會將相片由左至右與由上至下排列,每行都是八張。 相片會在填滿水平線後換到下一行。 為了與行貼合,相片的左右邊緣可能會經過裁切。 相片也可能會在部署延展模式時水平延伸,並在上下邊緣經過裁切,藉此將行填滿。

WinAppSDK 提供的新功能

  • 新的 ThemeSettings 類別可讓 Win32 WinRT 應用程式偵測到系統的高對比設定發生變更,此功能類似 UWP 的 AccessibilitySettings 類別。 請參閱 GitHub 的 ThemeSettings API 規格了解詳情。
  • AccessKeyManager.EnterDisplayMode是針對既有根目錄目前的焦點元素顯示存取金鑰的新方法。 顯示叫用命令的按鍵提示時,存取金鑰會處於「顯示模式」,例如在小畫家按下 Alt 鍵可顯示各個按鍵對應的控制項。 這種方法可讓使用者以程式設計方式進入顯示模式。
  • Application.ResourceManagerRequested 透過一套機制來提供不同的 IResourceManager,以便在預設 ResourceManager 無法運作時解析資源 URI。 請參閱 GitHub 的 Application.ResourceManagerRequested API 規格了解詳情。
  • WebView2 SDK 版本已從 1661.34 更新為 1823.32
  • Popup/FlyoutBase.IsConstrainedToRootBounds = false已受支援,可讓快顯視窗/飛出視窗延伸到父視窗的邊界之外。 這些類型已新增 SystemBackdrop 屬性,藉此支援在這類不受限的快顯視窗使用壓克力。 功能表會按照預設,使用此屬性來加上壓克力。
  • ClosedFrameworkClosedIsClosed 已新增到 DesktopAcrylicControllerMicaController,藉此改善物件/執行緒關閉時的處理方式。
  • DesktopAcrylicController.Kind現在已可設為可在幾種標準壓克力外觀中做選擇。
  • DispatcherQueue有幾種新的事件和協助程式可加強讓關閉更井然有序,且可讓使用 Islands 的應用程式輕鬆執行標準的受支援事件迴圈。
  • InputNonClientPointerSource在 Microsoft.UI.Input 命名空間中可用於自訂標題列情境,藉此定義非用戶端區域的地區。 程式碼可註冊對應事件,例如在這些地區的懸停和點擊事件。
  • AppWindow 有幾種新的協助程式可取得 DispatcherQueue 並與之建立關聯。
  • 新的 TreeView.SelectionChanged 事件可讓開發人員在使用者或程式碼後置變更了 TreeView 控制項的所選節點組合時作出回應。
  • 新的 ScrollView 控制項提供 ScrollViewer 的新替代方案。 這個新的控制項在行為和 API 方面與現有的 ScrollViewer 控制項高度重疊,但卻是以 InteractionTracker 為基礎,具備動畫驅動的檢視變更等功能,且也是為了確保 ItemsRepeater 的完整功能而設計。 請參閱更有彈性的 ScrollViewer · 問題編號 108 · microsoft/microsoft-ui-xaml (github.com) 了解詳情。 完整的 ScrollView 模型已加入各種新類型,包括 ScrollPresenter
  • 新的 AnnotatedScrollBar 控制項擴充了一般的捲動桿功能,提供可輕鬆瀏覽大量項目集合的方法。 藉由可點擊的滑軌,加上可當作標記使用的標籤,上述方法得以實現。 它也會在懸停於可點擊的滑軌上方時顯示工具提示,藉此讓使用者更了解可捲動內容的細部。

已知問題

錯誤修正

  • 已修正呼叫 Microsoft.Windows.AppLifecycle.AppInstance.Restart("") API 會導致未封裝應用程式當機的問題。 關於更多資訊,請參閱 GitHub 問題 #2792
  • 已修正 1.4-experimental1 的安裝程式當機問題。 關於更多資訊,請參閱 GitHub 問題 #3760
  • 已修正 TextBlock 未正確移除文字刪除線的問題。 關於更多資訊,請參閱 GitHub 問題 #1093
  • 已修正 TabFocusNavigation 設為「一次」時,Shift + Tab 無法在面板中正確導覽的問題。如需詳細資訊,請參閱 GitHub 問題 #1363
  • 已修正 C++/WinRT 的 {x:Bind} 無法搭配已命名 XAML 控制項的屬性正常運作的問題。 關於更多資訊,請參閱 GitHub 問題 #2721
  • 已修正設定 DebugSettings.EnableFrameRateCounter = true 在 WinUI 桌面應用程式造成的執行階段 AccessViolation 問題。 關於更多資訊,請參閱 GitHub 問題 #2835
  • 已修正 XamlTypeInfo.g.cpp 不包含所需標頭的問題。 關於更多資訊,請參閱 GitHub 問題 #4907
  • 已修正同時有多個觸控和滑鼠輸入所造成的當機問題。 關於更多資訊,請參閱 GitHub 問題 #7622
  • 已修正當滑鼠停在非使用中的視窗上時無法捲動的系統設定啟用時,使用中的 WinUI 3 應用程式視窗也無法捲動的問題。 關於更多資訊,請參閱 GitHub 問題 #8764
  • 修正為 MediaPlayerElement 設定子類別時當機的問題。
  • 已修正 TreeView 的當機和記憶體流失問題。
  • 已修正使用鍵盤瀏覽 RadioButtons 時可能造成應用程式停止回應的問題。
  • 已修正使用鍵盤在瀏覽 PipsPager 時當機的問題。
  • 已修正 WebView2 內容,可在「設定」應用程式中以 [文字大小] 協助工具的設定來縮放比例。
  • 已修正動畫在顯示器關閉時執行時可能當機的問題。
  • 已修正 1.3 中第一個版面配置/轉譯會增加約 10% 額外負荷的效能問題。

第 1.3 版

版本 1.3.3 (1.3.230724000)

這是 Windows 應用程式 SDK 的維修版本,其中包含 1.3 版的重要錯誤修正。

  • 已修正當對話方塊關閉時,滑鼠有時會停止運作的問題。
  • 已修正系統的套件版本不相符而導致應用程式無法安裝的部署問題。 如需詳細資訊,請參閱 GitHub 問題 #3740
  • 已修正 Windows 應用程式 SDK 1.3 的操作功能表位置受到影響的問題。
  • 已修正部分 WinUI3 應用程式在某些情況下會因 XAML 過早自動關閉而跟著關閉時造成當機的問題。
  • 已修正字型圖示並未正確將由右至左的語言鏡像處理的問題。 如需詳細資訊,請參閱 GitHub 問題 #7661
  • 已修正資源因順序不良而中斷時,應用程式會當機的問題。 如需詳細資訊,請參閱 GitHub 問題 #7924

版本 1.3.2 (1.3.230602002)

這是 Windows 應用程式 SDK 的維修版本,其中包含 1.3 版的重要錯誤修正。

  • 已修正設定受保護的指標時會當機的問題。
  • 已修正應用程式啟動期間的 XamlMetadataProvider 效能問題。 如需詳細資訊,請參閱 GitHub 問題 #8281
  • 已修正 RichTextBlock 的超連結和觸控問題。 如需詳細資訊,請參閱 GitHub 問題 #6513
  • 已修正 WebView2 的捲動和觸控板問題。 如需詳細資訊,請參閱 GitHub 問題 #7772
  • 已修正 Windows 應用程式 SDK 的更新有時需要重新啟動 Visual Studio 的問題。 如需詳細資訊,請參閱 GitHub 問題 #3554
  • 已修正執行偵錯工具時,關機會產生有雜訊的例外狀況的問題。

版本 1.3.1 (1.3.230502000)

這是 Windows 應用程式 SDK 的維修版本,其中包含 1.3 版的重要錯誤修正。

  • 已修正內容為 Null 時,設定 SystemBackdrop 會導致應用程式當機的問題。 如需詳細資訊,請參閱 GitHub 問題 #8416
  • 已修正以 1.3.0 中的新功能設定 XAML 的視窗標題時會導致應用程式當機的問題。 如需詳細資訊,請參閱 GitHub 問題 #3689
  • 已修正視窗內容變更時焦點錯誤的問題。
  • 已修正使用 WinAppSDK 1.3 專案範本建立 C++ 專案的問題。
  • Visual Studio Marketplace 的已更新範本

第 1.3 版

下列各節說明 1.3 版的新功能、更新功能和已知問題。

在現有的 Windows 應用程式 SDK 1.2 應用程式中,您可以將 Nuget 套件更新為 1.3.230331000 (請參閱使用 NuGet 套件管理員 在 Visual Studio 安裝和管理套件中的更新套件一節)。

如需更新的執行階段和 MSIX,請參閱 Windows 應用程式 SDK 的下載項目

XAML 底圖 API

透過 XAML 視窗中內建的屬性,Mica & Background Acrylic 背景現在可以更輕鬆地在 WinUI 3 應用程式中使用。 如需 Xaml 背景屬性的詳細資訊,請參閱系統背景雲母背景 API 文件。

public MainWindow()
{
    this.InitializeComponent();

    this.SystemBackdrop = new MicaBackdrop();
}

Window.AppWindow

在更換數行重複使用程式碼後,您現在已可直接透過 Window.AppWindow視窗使用 AppWindow API。

來自 WinAppSDK 的新功能

  • ApplicationModel.DynamicDependencyPackageDependency.PackageGraphRevisionId 替換已棄用的 MddGetGenerationId。
  • 環境管理員:EnvironmentManager.AreChangesTracked 告知您是否能夠在應用程式中追蹤環境管理員的變更。
  • 參照的 Static/ThemeResource 查詢無法解析時,會引發新事件 DebugSettings.XamlResourceReferenceFailed。 此事件允許存取詳細說明架構在何處搜尋該金鑰的追蹤,以便您更好地調試 Static & ThemeResource 查找失敗。 如需詳細資訊,請參閱 GitHub 的追蹤 XAML 資源參照查詢失敗 API 規格。

其他更新

已知問題

由於 Xaml 編譯器最近的變更,升級至 1.3 的現有專案可能會在 Visual Studio 當中遇到類似如下的組建錯誤:

> C:\Users\user\\.nuget\packages\microsoft.windowsappsdk\\**1.3.230331000**\buildTransitive\Microsoft.UI.Xaml.Markup.Compiler.interop.targets(537,17): error MSB4064: The "PrecompiledHeaderFile" parameter is not supported by the "CompileXaml" task loaded from assembly: Microsoft.UI.Xaml.Markup.Compiler, Version=1.0.0.0, Culture=neutral, PublicKeyToken=de31ebe4ad15742b from the path: C:\Users\user\\.nuget\packages\microsoft.windowsappsdk\\**1.2.230118.102**\tools\net472\Microsoft.UI.Xaml.Markup.Compiler.dll. Verify that the parameter exists on the task, the <UsingTask> points to the correct assembly, and it is a settable public instance property.

這個問題會發生,是因為 Visual Studio 使用 1.2 的快取 Xaml 編譯器工作 dll,但使用 1.3 的不相容 MSBuild 邏輯來驅動,如上述錯誤文字所示。 解決辦法是關閉 Visual Studio 再重新啟動,然後重新載入解決方案。

1.2 版

版本 1.2.5 (1.2.230313.1)

這是 Windows 應用程式 SDK 的維修版本,其中包含 1.2 版的重要錯誤修正。

  • 已修正應用程式在組合關閉過程中當機的問題。
  • 已修正應用程式在螢幕關閉後仍繼續執行動畫的問題。
  • 已修正滑鼠和鍵盤輸入同時發生時,WebView2 的滑鼠和觸控輸入會失敗的問題。 如需詳細資訊,請參閱 GitHub 問題 #3266

版本 1.2.4 (1.2.230217.4)

這是 Windows 應用程式 SDK 的維修版本,其中包含 1.2 版的重要錯誤修正。

  • 已修正獨立應用程式無法設定 UAC 設定的問題。 如需詳細資訊,請參閱 GitHub 問題 #3376
  • 已修正推播通知傳回內含 PushNotificationChannel::ExpirationTime 的不準確到期時間的問題。 如需詳細資訊,請參閱 GitHub 問題 #3300
  • 已修正將雙精度浮點數當做參數傳遞至 x:Bind 函式時,負數會被視為「無效」的問題。
  • 修正多個 WinUI VSIX 更新。 這些更新包括簡化 app.manifest 的專案範本 dipAwareness、移除 UWP 範本、更新當地語系化的資源檔案、新增手機識別碼以解鎖存放區提交,以及移除著作權聲明和授權。 如需詳細資訊,請參閱 GitHub 問題 #5659#3205#3323#3322#3143

版本 1.2.3 (1.2.230118.102)

這是 Windows 應用程式 SDK 的維修版本,其中包含 1.2 版的重要錯誤修正。

  • 已修正多個視窗關閉時 WinUI 3 應用程式會當機的問題。
  • 已修正呼叫 ThreadPoolTimer 介面的兩個或多個參照時,應用程式會在關閉時當機的問題。 如需詳細資訊,請參閱 GitHub 問題 #7260#7239
  • 已修正所有單一專案 MSIX 應用程式都以完全信任來執行的問題。 如需詳細資訊,請參閱 GitHub 問題 #7766

版本 1.2.2 (1.2.221209.1)

這是 Windows 應用程式 SDK 的維修版本,其中包含 1.2 版的重要錯誤修正。

  • 已修正市集和側載套件 (例如從安裝程式、NuGet 和啟動程序載入程式載入) 在其他套件已安裝時無法安裝的問題。 如需詳細資訊,請參閱 GitHub 問題 #3168
  • 已修正使用觸控板捲動時彈性效果和動畫曲線消失的問題。 如需詳細資訊,請參閱 GitHub 問題 #7874
  • 已修正 ListView 中記憶體流失的問題。
  • 已修正在滑鼠懸停後,按鈕範本不遵守前景屬性的問題。 如需詳細資訊,請參閱 GitHub 問題 #7208
  • 已修正 MediaElement 中沒有 MediaPlaybackItem 時發生預期外例外狀況的問題。
  • 已修正內容轉換時 MediaPlayerElement 出現白色畫面的問題。
  • 已修正 App.UnhandledException 無法從其他執行緒攔截例外狀況的額外問題。 如需詳細資訊,請參閱 GitHub 問題 #1259#5221

版本 1.2.1 (1.2.221116.1)

這是 Windows 應用程式 SDK 的維修版本,其中包含 1.2 版的重大錯誤修正。

已修正新增 WebView2 或 TextBox 控制項時,C++ WinUI 3 應用程式會在啟動時當機的問題。 如需詳細資訊,請參閱 GitHub 問題 #7911 & #3117

1.2 版

下列各節說明 1.2 版的新功能、更新功能、限制和已知問題。

注意

Visual Studio 2019 和 .NET 5 已不再支援組建 C# 應用程式 (請參閱 Windows 應用程式 SDK 1.2 版即將轉移到 C# WinRT 2.0)。 您將需要 Visual Studio 2022 和下列其中一個 .NET SDK 版本:6.0.401 (或之後的版本)、6.0.304、6.0.109。 WinAppSDK 1.2 發布時也將支援 .NET 7。

若要更新 .NET SDK 版本,請安裝 Visual Studio 2022 最新版,或前往 .NET 下載項目。 在沒有所需 .NET SDK 版本的情況下更新 NuGet 套件時,您會看到如下的錯誤:「此版本的 WindowsAppSDK 需要 .NET 6+ 和 WinRT.Runtime.dll 2.0 版或更高的版本。」 若要將專案從 .NET 5.0 更新到 .NET 6.0,請開啟專案檔案,並將「TargetFramework」變更為 net6.0,「目標 OS 版本」則變更為適用的值 (例如 net6.0-windows10.0.19041.0)。

Windows 的第三方小工具

小工具面板最初是在 Windows 11 推出,而且僅限於顯示內建小工具。 小工具是小型的 UI 容器,可在小工具面板顯示文字和圖形,且與裝置上安裝的應用程式相關聯。 透過 Windows 應用程式 SDK,第三方開發人員如今已可為封裝的 Win32 應用程式建立小工具,並在 Windows 11 小工具面板進行本機測試。

如需小工具的詳細資訊,請參閱小工具概觀

若要開始為您的應用程式開發小工具,請參閱小工具服務提供者開發文件和小工具設計基本概念了解必要條件、指南和最佳做法。

此版本的先決條件包括:

  • 在開發機器啟用開發人員模式。
  • 開發電腦執行的 Windows 版本來自 Windows Insider Preview (WIP) 開發人員通道,版本編號大於或等於 25217,搭配的小工具面版版本為 521.20060.1205.0 或以上。

開發小工具時的已知限制

  • 第三方小工具只能在已於 WIP 註冊此預覽版本的裝置進行本機測試。
  • 小工具只能在封裝的 Win32 應用程式建立。 漸進式 Web 應用程式 (PWA) 的小工具預計將在 Microsoft Edge 108 中獲得支援。

DisplayInformation

Windows 桌面應用程式現在已可透過 WinAppSDK 的 DisplayInformation 類別支援高動態範圍 (HDR) 和自動色彩管理 (ACM)。 DisplayInformation 類別可讓您監控應用程式檢視的顯示器相關資訊。 其中包含的事件可讓用戶端監控對應用程式檢視的所在顯示器有影響的檢視變更,以及對應用程式檢視可能有影響的顯示器變更。

WinUI 3

WinUI 3 應用程式可透過 MediaPlayerElementMediaTransportControls 媒體播放控制項播放影音。 如需詳細了解使用媒體控制項的方式和時機,請參閱媒體播放器

WinUI 3 已經更新,最新的控制項、樣式和行為已與 WinUI 2.8 不同。 這些更新包含新增了 InfoBadge 控制項、改善了協助工具和高對比模式,以及修正控制項的錯誤。 如需詳細資訊,請參閱 WinUI 2.7WinUI 2.8 的版本資訊。

已修正的問題

已知限制

  • 使用 Visual Studio 2022 17.4.0 建立新的 WinUI 3 專案時,專案會參照 WinAppSDK 的預覽版本。 請使用 NuGet 套件管理員將參照更新為此版本。
  • 在未封裝的應用程式將 MediaPlayerElement.Source 設定為相對 URI (ms-appx/ms-resource) 會失敗。 建議的解決辦法是將相對的 ms-appx:/// URI 轉換為完全解析的 file:/// URI。

精簡以 .NET 開發的應用程式

.NET 開發人員現在已可發佈精簡的 WinAppSDK 應用程式。 有了 CsWinRT 2.0,以 WinAppSDK 發布的 C#/WinRT 投射現在已可精簡。 發布精簡過的應用程式可減少應用程式在硬碟占用的空間,因為可精簡的二進位碼中未使用的程式碼都已移除。 應用程式的啟動效能可能會改善。 在發布精簡的基本 Hello World 應用程式後,我們發現硬碟佔用空間減少將近 80%,且啟動效能改善了約 7%。 精簡的 WinUI 程式庫則節省了近 45% 的硬碟空間。

如需詳細了解精簡功能的起用方式、精簡的限制 (例如可精簡類型產生的反射),以及精簡警告,請參閱精簡獨立部署和可執行檔。 開發人員在精簡後,應徹底測試應用程式,確保所有功能皆如期運作。 如需詳細資訊,請參閱 GitHub 問題 2478

支援 Visual Studio Arm64

早在 Project Reunion (現在的 WinAppSDK) 0.5,以 WinAppSDK 開發的應用程式已能在 Arm64 執行。 從 Visual Studio 17.3 Preview 2 開始,您還可以在 Arm64 裝置上以 WinAppSDK 開發原生應用程式。

若要開始在 Arm64 裝置上進行開發,請參閱 Windows on ArmArm64 Visual Studio

通知

AppNotificationBuilder 推出了 XML 承載的替代方案,可供建立與定義應用程式通知。

請參閱 GitHub 的 AppNotificationBuilder 規格了解使用資訊。

另請參閱快速入門:Windows 應用程式 SDK 的應用程式通知,以便參考如何建立桌面 Windows 應用程式來傳送和接收本機應用程式通知的範例。

重大變更

如果是推播通知,在進行通道請求呼叫時,應用程式需要使用 Azure 物件 ID,而不是 Azure 應用程式 ID。 如需詳細了解如何尋找 Azure 物件識別碼,請參閱快速入門:Windows 應用程式 SDK 的推播通知

已修正的問題

PushNotificationManager.IsSupported 會針對高權限模式執行檢查。 如果應用程式的權限升高,就會傳回 false

已知限制 (通知)

視窗化

Windows 10 的 1809 和之後的版本可透過 AppWindowTitleBar 類別完整自訂標題列。 您可以將 AppWindowTitleBar.ExtendsContentIntoTitleBar 設為 true,藉此將內容擴充到標題列區域;設為 SetDragRectangles 則可定義拖曳區域 (除了其他自訂選項之外)。

如果您以前都是使用 AppWindowTitleBar.IsCustomizationSupported 屬性來確認您是否可以呼叫 AppWindowTitleBar API,它現在會在支援的 Windows 應用程式 SDK Windows 10 版本 (1809 及之後的版本) 傳回 true

已知限制 (視窗化)

Windows 10 不支援基本的標題列自訂。 這些自訂項目包括 BackgroundColorInactiveBackgroundColorForegroundColorInactiveForegroundColorIconShowOptions。 如果您呼叫這些屬性,系統會忽略它們且不傳送通知。 其他 AppWindowTitleBar API 都能在 Windows 10 版本 1809 和之後版本運作。 如要自訂隱藏式輔助字幕按鈕顏色的 API 等屬性和 HeightExtendsContentIntoTitleBar 必須設為 true,否則系統也會忽略它們且不傳送通知。

存取控制

已在 GetSecurityDescriptorForAppContainerNames 功能推出 security.accesscontrol.h,使封裝程序和一般 Win32 API 之間的命名物件共用更簡單流暢。 此方法會擷取套件系列名稱 (PFN) 清單並存取遮罩,然後傳回安全性描述項。 請參閱 GitHub 的 GetSecurityDescriptorForAppContainerNames 規格了解詳情。

其他限制和已知問題

重要

當您從專案參照 WinAppSDK 1.2 時,您可能會看到類似如下的錯誤:「偵測到套件降級:Microsoft.Windows.SDK.BuildTools 從 10.0.22621.1 降級為 10.0.22000.194」,原因是應用程式專案和 WinAppSDK 套件的套件參照不相容。 若要解決此問題,您可以將專案中的參照更新為較新且相容的 Microsoft.Windows.SDK.BuildTools 版本。

  • 單元測試可能會失敗,並在 Visual Studio 的「測試」輸出窗格中顯示 REGDB_E_CLASSNOTREG 錯誤。 您可以將 <WindowsAppContainer>true</WindowsAppContainer> 新增至專案檔來解決問題。
  • .NET PublishSingleFile 不受支援。
  • 啟動程序載入程式和 Undocked RegFree WinRT 自動初始設定式的預設值 (現在) 僅供會產生可執行檔 (OutputType=Exe 或 WinExe) 的專案使用。 這可以避免類別庫 DLL 和其他非可執行檔依預設新增自動初始設定式。
    • 如果您的非可執行檔 (例如不會初始化啟動程序載入程式的一般可執行檔所載入的測試 DLL),您可以經由 <WindowsAppSdkBootstrapInitialize>true</WindowsAppSdkBootstrapInitialize><WindowsAppSdkUndockedRegFreeWinRTInitialize>true</WindowsAppSdkUndockedRegFreeWinRTInitialize> 在專案明確啟用自動初始設定式。
  • Microsoft.WindowsAppRuntime.Release.Net.dll 必然是 Arm64 二進位檔,不適用於 x86 和 x64 應用程式。 明確呼叫啟動程序 API 時,請勿使用 Microsoft.WindowsAppRuntime.Release.Net.dll 組件。 您可以將版本常數加入以下這個以 NuGet 套件發布的來源檔案:「..\include\WindowsAppSDK-VersionInfo.cs」,或使用自動初始設定式,藉此解決問題。

第 1.1 版

Windows 應用程式 SDK 穩定通道 1.1.x 譜系最新的可用版本是 1.1.5 版。 1.1.x 支援所有穩定通道功能 (請參閱 Windows 應用程式 SDK 發布通道 中的各發布通道提供的功能一節)。

第 1.1.5 版

這是 Windows 應用程式 SDK 的維修版本,其中包含 1.1 版的重要錯誤修正。

錯誤修正

  • 已修正雲母啟用時壓克力就無法運作的問題。 如需詳細資訊,請參閱 GitHub 的問題 7200
  • 已修正與 WindowsAppRuntime 安裝程式相依的應用程式 (例如未封裝的應用程式) 無法在 Windows 10 ARM64 電腦上執行的問題。 如需詳細資訊,請參閱 GitHub 的問題 2564

1.1.4 版

這是 Windows 應用程式 SDK 的維修版本,其中包含 1.1 版的重要錯誤修正。

錯誤修正

  • 已修正從 1.0.x 回歸會導致 ListView、TreeView 和其他「List」控制項在捲動多個項目時當機的問題。 如需詳細資訊,請參閱 GitHub 的問題 7230
  • 已修正 DispatcherQueue 造成系統不再叫用佇列回撥的問題。
  • 已修正在同一次應用程式工作階段呼叫 DeploymentManager.Initialize 多次會導致應用程式當機的問題。
  • 已修正 C# 應用程式無法在 Arm64 Visual Studio 組建的問題。 如需詳細資訊,請參閱 GitHub 的問題 7140
  • 已修正錯誤的失敗處理導致 XAML 影像處理程式碼發生間歇性當機的問題。
  • 已修正將事件處理常式附加到具有上層 UserControl 的 ItemsRepeater 時會發生記憶體流失的問題。 如需詳細資訊,請參閱 GitHub 的問題 6123
  • 已修正如果應用程式專案設為在側載時 (例如 appinstaller) 啟用套件自動更新,Visual Studio 17.3 就會發生組建失敗的問題。 如需詳細資訊,請參閱問題 2773
  • 已修正市集發布的封裝應用程式在呼叫初始化時,如果 Main 和 Singleton 套件已安裝,它就會因 DeploymentManager::GetStatus 傳回 Package Install Needed 而重複呼叫的問題。 這會導致應用程式啟動時的效能降低。
  • 已修正當無法開啟清除事件時,導致單一實例應用程式中發生例外狀況的問題。 如需詳細資訊,請參閱 GitHub 的 PR

1.1.3 版

這是 Windows 應用程式 SDK 的維修版本,其中包含 1.1 版的重要錯誤修正。

錯誤修正

  • 已修正在應用程式第一頁加入 ProgressBar、ProgressRing、PipsPager、PersonPicture 或 Expander 控制項時 XAML 會當機的一系列相關問題。 如需詳細資訊,請參閱 GitHub 上的問題 7164
  • 已修正 x64 安裝程式無法安裝 Windows 應用程式 SDK 執行階段的問題。 如需詳細資訊,請參閱 GitHub 上的問題 2713
  • 已修正較高版本的執行階段已安裝時 WindowsAppRuntime 就無法安裝的問題。 如需詳細資訊,請參閱 GitHub 的討論 2708

1.1.2 版

這是 Windows 應用程式 SDK 的維修版本,其中包含 1.1 版的重要錯誤修正。

錯誤修正

  • 已修正在對話方塊開啟時關閉視窗會導致 XAML 當機的問題。 如需詳細資訊,請參閱 GitHub 上的問題 1032
  • 已在 C# 檔案中新增 <auto-generated> 標籤,以防止 StyleCop 警告。 如需詳細資訊,請參閱 GitHub 上的問題 4526
  • 已修正在未安裝相符的架構套件時呼叫 MddBootstrapInitialize 會導致存取違規錯誤和當機的問題。 如需詳細資訊,請參閱 GitHub 上的問題 2592
  • 已修正 Visual Studio 遺漏 C# WinUI 3 項目範本的問題。 如需詳細資訊,請參閱 GitHub 上的問題 7148
  • 已修正以系統使用者身分執行時,WindowsAppRuntime 安裝程式會失敗的問題。 如需詳細資訊,請參閱 GitHub 上的問題 2546

1.1.1 版

這是 Windows 應用程式 SDK 的維修版本,其中包含 1.1 版的重要錯誤修正。

錯誤修正

  • 已修正應用程式有時會在拖放操作中當機的問題。 如需詳細資訊,請參閱 GitHub 上的問題 7002
  • 已修正將 AppWindowPresenterKind 從 FullScreen 切換為預設值時標題列會消失的問題。
  • 已修正 ApiInformation.IsPropertyPresentApiInformation.IsMethodPresent 這類啟動程序載入程式 API 會在未封裝的應用程式引起未處理的例外狀況的問題。 如需詳細資訊,請參閱 GitHub 上的問題 2382
  • 已修正使用觸控筆輸入來最大化應用程式時應用程式會凍結的問題。

第 1.1 版

下列各節說明 1.1 版的新功能、更新功能、限制和已知問題。

注意

如果您是 C# 開發人員,您需要下列其中一個 .NET SDK 版本:5.0.213、5.0.407、6.0.104、6.0.202 (或之後的版本)。 若要更新 .NET SDK 版本,請前往 .NET 下載項目或更新至 Visual Studio 最新版。 在沒有所需 .NET SDK 版本的情況下更新 NuGet 套件時,您會看到如下的錯誤:「此版本的 WindowsAppSDK 需要 .NET 6+ 和 WinRT.Runtime.dll 1.6 版或更高的版本。」

應用程式生命週期&重新啟動

應用程式現在已可使用現有的 RegisterApplicationRestart API 組建的特定引數&狀態來起始明確的重新啟動,以便將 OS 在更新、停止回應&重新啟動情境註冊為重新啟動。

新功能:

  • 任何已封裝或未封裝的桌面應用程式都能在收到命令時自行終止與重新啟動,並使用 AppInstance.Restart() API 存取重新啟動執行個體的任意命令列字串。
    • 這是 UWP RequestRestartAsync() API 的升高及同步版本,可透過引數重新啟動,並在重新啟動失敗時傳回 AppRestartFailureReason
    • 如需使用方式&參考資訊,請參閱 GitHub 的重新啟動 API 文件。

WinUI 3

WinUI 3 是 Windows 應用程式 SDK 適用的原生使用者體驗 (UX) 架構。 此版本加入了 WinAppSDK 1.0 的新功能,以及 1.0 & 1.1 預覽版本的多個穩定性改良。

新功能:

已修正的 Bug:

  • 已修正使用雲母時,如果視窗平均切割成兩個畫面,應用程式會當機的問題。 如需詳細資訊,請參閱 GitHub 的問題 7079
  • 已修正沒有藉由將 WebView2 SDK 從 1020.46 升級到 1185.39 來安裝 C/C++ 執行階段 (CRT) 時,含有 WebView2 的 C# 應用程式會在啟動時當機的問題。
  • 已修正有些圓角在理應顯示單色時卻顯示漸層的問題。 如需詳細資訊,請參閱 GitHub 的問題 6076 & 問題 6194
  • 已修正更新的樣式在 generic.xaml 遺失的問題。
  • 已修正捲動至 ListView 尾端會導致應用程式當機的版面配置循環問題。 如需詳細資訊,請參閱 GitHub 上的問題 6218
  • 已修正拖放功能啟用時使用者無法放下元素的問題。 如需詳細資訊,請參閱 GitHub 上的問題 7008

已知限制:

  • 使用自訂標題列時,標題控制項不會在主題變更時改變顏色。
  • 使用者在對話方塊開啟時關閉視窗,XAML 會當機。

部署

新功能:

已知限制:

  • 您需要啟用側載功能才能執行 Windows 應用程式執行階段安裝程式 (WindowsAppRuntimeInstall.exe)。 有關詳細資訊,請參閱 GitHub 上的問題 2469
  • 某些情況下,透過 Visual Studio 專案功能表建立 MSIX 套件可能會使 Visual Studio 當機。 此問題將在 Visual Studio 17.3 Preview 2 版本修正,並且對 17.2 進行維修。 如果遇到此問題,您可以從命令列產生 MSIX、切換至未封裝的專案,或還原回 Windows 應用程式 SDK 1.0,藉此解決問題。
  • 1809 不支援以 MSIX 封裝的獨立應用程式,它會導致應用程式在啟動時當機。

提升權限

應用程式現在已能以較高權限來執行。

已知限制:

環境變數管理員

環境變數管理員是 Windows 應用程式 SDK 1.1 推出的新 API。 環境變數管理員可讓開發人員從單一 API 介面的程序、使用者和電腦範圍內存取和修改環境變數。

如果在封裝應用程式中使用環境變數管理員,系統會記錄所有環境變數作業。 移除套件時,所有環境變數作業都會還原。

新功能:

  • 取得與設定程序、使用者和電腦範圍內的環境變數。
  • 移除使用環境變數管理員的套件時,環境變數會自動還原。
  • 加入 PATH 和 PATHEXT 的特定 API。

已知限制:

  • 僅適用於 Windows 11

MRT 核心

MRT Core 是新式 Windows 資源管理系統的簡化版本,會隨 Windows 應用程式 SDK 一起發布。

修正的問題:

  • 使用 VS UI 新增資源檔時,資源無法按照預設加入索引的問題,在 .NET SDK 6.0.300 已修正。 如果使用較舊的 .NET SDK 版本,請繼續使用 1.0 版本資訊所述的解決辦法。 如需其他資訊,請參閱 GitHub 的問題 1786
  • 資源 URI 無法在未封裝的 C++ WinUI 3 應用程式正確組建的問題,在 Visual Studio 2022 17.2 已修正。 如果使用較舊的 Visual Studio 版本,請將 Visual Studio 更新為 17.2,以便接收此修正。

已知限制:

  • 在 .NET 專案中,如果應用程式已經組建,已複製並貼到專案資料夾的資源檔案就不會在按 F5 後加入索引。 重新組建應用程式即可解決問題。 如需詳細資訊,請參閱 GitHub 的問題 1503

有關更多信息,請參閱使用 MRT Core 管理資源

通知

封裝應用程式 (包含具有外部位置的封裝) 和未封裝應用程式的開發人員現在已可傳送 Windows 通知。

新功能:

  • 支援封裝與未封裝應用程式的應用程式通知。
    • 開發人員可以在本機或從自己的雲端服務傳送應用程式通知,也就是快顯通知。 請參閱應用程式通知概覽
  • 支援封裝和未封裝應用程式使用推播通知。
    • 開發人員可從自己的雲端服務傳送原始通知和應用程式通知。 請參閱推播通知概觀

已知限制:

  • 不支援從高權限應用程式傳送通知。 PushNotificationManager::IsSupported() 不會為高權限模式執行檢查。

視窗化

為了更輕鬆地以程式設計方式存取 USER32.dll 實作的功能 (請參閱 Windows 和訊息),此版本會在 AppWindow 本身提供更多該類功能。

新功能:

  • 呼叫 AppWindow.ShowOnceWithRequestedStartupState(等同於 ShowWindow(SW_SHOWDEFAULT)) 後,內含現有視窗的應用程式對於視窗的顯示方式會有更高的掌控性。
  • 應用程式能顯示、最小化或還原視窗,也能指定視窗是否應在收到呼叫時啟動。
  • 應用程式現在已可按照 Win32 座標判斷視窗用戶端區域大小的特定尺寸,無需計算非用戶端區域大小才能取得特定用戶端區域大小。
  • 提供更多 WinRT API 來支援以 SetWindowPos 的 hWndInsertAfter 功能為依據的 Windows Z 軸順序管理。
  • AppWindowTitleBar.ExtendsContentIntoTitleBar 繪製自訂標題列的應用程式可以設定 PreferredTitleBarHeight 選項。 您現在已可選擇標準高度的標題列,或有更多空間容納互動內容的長標題列。 請參閱 Fluent 設計指導方針的標題列,了解使用長標題列的建議時機。

修正的問題:

  • 現在初次叫用全螢幕展示模式時,視窗已會正確與整個畫面大小相符。 如需詳細資訊,請參閱 GitHub 的問題 1853
  • AppWindow::GetFromWindowId 建立的 Windows 會將 OverlappedPresenter 設為預設展示模式,但在變更為其他 API 的視窗樣式方面則沒有限制。 以 AppWindow::Create 建立的 Windows 一開始會使用預設的展示模式護欄。 如需詳細資訊,請參閱 GitHub 的問題 2049
  • 使用 OverlappedPresenter.SetBorderAndTitlebar API 隱藏標題按鈕和框線會導致最大化時產生 1 像素的頂端框線。 此問題已解決。 如需詳細資訊,請參閱 GitHub 的問題 1693

已知限制:

  • 使用 AppWindowTitlebar API 來自訂標準標題列的顏色時,相較於標準標題列,圖示和文字會不對齊。 如需更多資訊,請參閱 GitHub 問題 2459

  • 在解決 GitHub 問題 2049 時 (請參閱上文),我們製造了以下錯誤:如果您將任何 AppWindowPresenter 套用至您從 GetFromWindowId 擷取的 AppWindow,然後透過呼叫 USER32 API 來變更該展示模式追蹤的視窗樣式,接著再嘗試重新套用預設展示模式,藉此還原回視窗之前的狀態,會產生沒有標題列的視窗。 如果您需要在應用程式中使用任何展示模式,並在套用非預設展示模式時,呼叫 USER32 來變更視窗樣式,則在此問題修正以前,您可能需要新增一套解決辦法來確保正確的窗口行為。 您可以將下列程式碼片段當作範本來解決此問題:

    AppWindow m_appWindow;
    OverlappedPresenter m_defaultPresenter;
    
    private void EnterFullScreen_Click(object sender, RoutedEventArgs e)
    {
        // Capture the default presenter.
        m_defaultPresenter = m_appWindow.Presenter as OverlappedPresenter;
    
        // Opt in the default overlapped presenter so it can control various aspects of the AppWindow.
        m_defaultPresenter.IsAlwaysOnTop = m_defaultPresenter.IsAlwaysOnTop;
        m_defaultPresenter.IsResizable = m_defaultPresenter.IsResizable;
        m_defaultPresenter.IsMinimizable = m_defaultPresenter.IsMinimizable;
        m_defaultPresenter.IsMaximizable = m_defaultPresenter.IsMaximizable;
        m_defaultPresenter.SetBorderAndTitleBar(m_defaultPresenter.HasBorder, m_defaultPresenter.HasTitleBar);
    
        m_appWindow.SetPresenter(AppWindowPresenterKind.FullScreen);
    }
    
    private void ExitFullScreen_Click(object sender, RoutedEventArgs e)
    {
        m_appWindow.SetPresenter(AppWindowPresenterKind.Default);
    }
    

C#/WinRT

現在已支援 C# Windows 執行階段元件,包括 WinUI 自訂控制項。 這可讓元件作者將 C#撰寫的執行階段元件發布至任何 WinRT 相容的語言 (例如 C++/WinRT)。 請參閱逐步解說—建立內含 WinUI 3 控制項的 C# 元件,並在使用 Windows 應用程式 SDK 的 C++/WinRT 應用程式中使用GitHub 範例,以便開始操作。

其他限制和已知問題

  • 引用依賴 WebView2 的套件 (如 Microsoft.Identity.Client) 的應用程式無法建置。 這是由建置時的二進位檔案衝突引起的。 有關詳細資訊,請參閱 GitHub 上的問題 2492
  • 與 WinAppSDK C# 類別庫專案一起使用 dotnet build 可能會看到生成錯誤「無法載入 Microsoft.Build.Packaging.Pri.Tasks.ExpandPriContent 任務」。 若要解決此問題,請在專案檔中設定 <EnableMsixTooling>true</EnableMsixTooling>
  • 預設 WinAppSDK 範本注意到 MaxVersionTested=「10.0.19041.0」,而它應該是「10.0.22000.0」。 若要完全支援某些功能,尤其是 UnlockedDEH,請將專案文件中的 MaxVersionTested 更新為「10.0.22000.0」。

1.0 版

Windows 應用程式 SDK 穩定通道 1.0.x 譜系最新的可用版本是 1.0.4 版。 1.0.x 支援所有穩定通道功能 (請參閱 Windows 應用程式 SDK 發布通道 中的各發布通道提供的功能一節)。

1.0.4 版

這是 Windows 應用程式 SDK 的維修版本,其中包含 1.0 版的重要錯誤修正。

錯誤修正

  • 已修正 AppBars 當做 Page.TopAppBar 或 Page.BottomAppBar 使用時無法在螢幕上轉譯的問題。
  • 已修正應用程式的套件名稱字元為 12 個或以下時,如果使用來自 MUXControls.dll 的 WinUI 控制項就會立即當機的問題。 如需詳細資訊,請參閱 GitHub 的問題 6360
  • 已修正會造成鍵盤捷徑和其他情境發生問題的觸控輸入問題。 如需詳細資訊,請參閱 GitHub 的問題 6291
  • 已修正以 MSIX 封裝或獨立部署的應用程式無法部署的問題。
  • 已修正應用程式有時會在拖放操作中當機的問題。 如需詳細資訊,請參閱 GitHub 上的問題 7002

1\.0.3 版

這是 Windows 應用程式 SDK 的維修版本,其中包含 1.0 版的重要錯誤修正。

錯誤修正

  • 已修正 C/C++ 執行階段 (CRT) 未安裝時,內含 WebView2 的 C# 應用程式會在啟動時當機的問題。
  • 已修正會造成鍵盤捷徑和其他情境發生問題的觸控輸入問題。 如需詳細資訊,請參閱 GitHub 的問題 6291

備註:我們通常不會在維修版本新增功能,但此版本的 WebView2 修正必須更新至最新版的 WebView2 SDK (1020.46 至 1185.39)。 如需 WebView2 1.0.1185.39 的詳細資訊,請參閱 WebView2 SDK 版本資訊,WebView2 Runtime的其他資訊則請參閱發布應用程式和 WebViewView2 執行階段

1\.0.2 版

這是 Windows 應用程式 SDK 的維修版本,其中包含 1.0 版的重要錯誤修正。

錯誤修正

  • 已修正捲動至 ListView 尾端會導致應用程式當機的版面配置循環問題。 如需詳細資訊,請參閱 GitHub 上的問題 6218
  • 已修正 C/C++ 執行階段 (CRT) 未安裝時,C# 應用程式會在啟動時當機的問題。 不過,使用 WebView2 的 C# 應用程式仍需要 CRT。 如需詳細資訊,請參閱 GitHub 上的問題 2117
  • 已修正採用單一專案 MSIX 的應用程式未產生 .appinstaller 檔案的問題。 如需詳細資訊,請參閱 GitHub 上的問題 1821
  • 已修正 WinUI 應用程式不支援 .NET 6 dotnet build 的問題。

1\.0.1 版

這是 Windows 應用程式 SDK 的維修版本,其中包含 1.0 版的重大錯誤修正,並支援多視窗。

錯誤修正

  • 已修正 MddBootstrapAutoinitializer 在啟用 ImplicitUsings 時無法編譯的問題。 如需詳細資訊,請參閱 GitHub 上的問題 1686
  • 已修正 WebView2 的焦點意外遺失導致輸入和選取問題的問題。 如需詳細資訊,請參閱 GitHub 的問題 5615 & 問題 5570
  • 已修正在 WinUI 3 應用程式使用自訂標題列時,Visual Studio 的應用程式內工具列無法點擊的問題。
  • 已修正在 WinUI 3 應用程式使用自訂標題列時,貼齊式版面配置無法顯示的問題。 如需詳細資訊,請參閱 GitHub 的問題 6333 & 問題 6246
  • 已修正以仍在載入的 UIElement 呼叫 Window.SetTitlebar 時,如果設定 Window.ExtendsContentIntoTitleBar 屬性會造成例外狀況的問題。
  • 已修正單一專案 MSIX 應用程式不支援 dotnet build 的問題。
  • 已修正安裝封裝應用程式後,未封裝的應用程式無法安裝的問題。 如需詳細資訊,請參閱 GitHub 的問題 1871
  • 已修正滑鼠拖曳作業過程中效能會降低的問題。
  • 已修正在未封裝應用程式呼叫 GetWindowIdFromWindow() 時當機的問題。 如需詳細資訊,請參閱 GitHub 討論 1891

1.0 版的限制和已知問題也適用於1.0.1版。

此外,針對有自訂標題列的應用程式,我們在此版本進行了變更 (並修正許多問題),其中包括修正用於拖&放作業的玻璃視窗。 建議您使用預設值和預設行為 (請試用看看!)。 如果您的標題列使用邊界,藉此讓預設標題按鈕可互動,建議您將標題欄的背景設定為紅色,然後調整邊界,將拖曳區域延伸至標題控制項,藉此將拖曳區域視覺化。

新功能

在 WinUI 3 應用程式的相同執行緒上建立多個視窗的功能已經穩定並啟用。 如需詳細資訊,請參閱 GitHub.com 的 問題 5918

1.0 版

下列各節說明 1.0 版的新功能、更新功能、限制和已知問題。

WinUI 3

WinUI 3 是 Windows 應用程式 SDK 適用的原生使用者體驗 (UX) 架構。 在此版本中,我們已新增多個 Windows 應用程式 SDK 0.8 的新功能,並緩解了 1.0 Preview 版本的問題。

新增和更新功能

  • 我們已新增控制項 (PipsPager、Expander、BreadcrumbBar) 並更新現有控制項,藉此反映 WinUI 2.6 的最新 Windows 樣式。
  • WinUI 已支援單一專案 MSIX 封裝,方法是使用「已封裝的空白應用程式...」建立新應用程式 範本。
  • 我們現在已支援部署未封裝在 Windows 版本 1809 和更高版本的 WinUI 3 應用程式。 如需詳細資訊,請參閱建立您的第一個 WinUI 3 專案
  • WinUI 3 專案現在已可將目標版本設為 Windows 10 版本 1809。 之前只能設為 1903 版。
  • Visual Studio 2022 Preview 5 和 GA 已支援應用程式內工具列、熱重新載入& WinUI 封裝應用程式的即時視覺化樹狀結構。

重要限制

  • 已封裝與未封裝 WinUI 應用程式共有的已知問題:

    • 參照 C++ Windows 執行階段元件的 C++ 或 C# 應用程式發生的執行階段錯誤:
      • 若要解決,請將下列目標新增到 Windows 執行階段元件的 .vcxproj 結尾:

        <Target Name="GetPriIndexName">
        <PropertyGroup>
            <!-- Winmd library targets use the default root namespace of the project for the App package name -->
            <PriIndexName Condition="'$(RootNamespace)' != ''">$(RootNamespace)</PriIndexName>
            <!-- If RootNamespace is empty fall back to TargetName -->
            <PriIndexName Condition="$(PriIndexName) == ''">$(TargetName)</PriIndexName>
        </PropertyGroup>
        </Target>
        
      • 預期會發生類似 WinRT 來源錯誤 - 0x80004005:「無法從 'ms-appx:///BlankPage.xaml'.' 找到資源」的錯誤。

  • 使用單一專案 MSIX 的 WinUI 應用程式 (已封裝的空白應用程式範本) 的已知問題:

    • 除非重新啟動 Visual Studio,否則缺少 [封裝&發佈] 功能表項目:在 Visual Studio 2019 和 Visual Studio 2022 使用已封裝的空白應用程式 (桌面版 WinUI 3) 專案範本建立具有單一專案 MSIX 的新應用程式時,除非您關閉並重新開啟 Visual Studio,否則發布專案的命令不會顯示在功能表中。
    • 若未安裝選用的「C++ (v14x) 通用 Windows 平台工具」元件,則具有單一專案 MSIX 的 C# 應用程式無法編譯。 如需詳細資訊,請參閱安裝 Windows 應用程式 SDK 的工具
    • 在具有單一專案 MSIX 的應用程式中,使用參照的 Windows 執行階段元件所定義的類型時可能發生執行階段錯誤:若要解決,請將可啟動的類別項目手動新增至 appxmanifest.xml。
      • C# 應用程式預期會發生「COMException:類別未註冊 (0x80040154 (REGDB_E_CLASSNOTREG))」的錯誤。
      • C++/WinRT 應用程式預期會發生「winrt::hresult_class_not_registered」的錯誤。
  • 未封裝的 WinUI 3 應用程式 (未封裝的應用程式) 的已知問題:

  • 封裝和部署 WinUI 應用程式時的已知問題:

    • 具有單一專案 MSIX 的 WinUI 應用程式 (已封裝的空白應用程式範本) 不支援 Package 命令。 請改用 Package & Publish 命令來建立 MSIX 套件。
    • 若要使用 Pack 命令從 C# 類別庫建立 NuGet 套件,請確認運作中的 ConfigurationRelease
    • C++ Windows 執行階段元件不支援使用 Pack 命令來建立 NuGet 套件。

如需詳細資訊或開始使用 WinUI 進行開發,請參閱:

視窗化

Windows 應用程式 SDK 提供 AppWindow 類別,它可讓過去容易使用的 Windows.UI.WindowManagement.AppWindow 預覽類別演進,使它可供所有 Windows 應用程式使用,包括 Win32、WPF 和 WinForms。

新功能

  • AppWindow 是一種高層級視窗化 API,可讓視窗化情境變得容易操作,與 Windows 使用者體驗及其他應用程式良好整合。 代表應用程式內容的系統管理容器中的高層級抽象層。 這個容器是您裝載內容的位置,且代表使用者在螢幕上調整應用程式大小與移動時所互動的實體。 如果您是熟悉 Win32 的開發人員,可將 AppWindow 視為 HWND 的高層級抽象層。
  • DisplayArea 代表 HMONITOR 的高層級抽象層,與 AppWindow 的原則相同。
  • DisplayAreaWatcher 可讓開發人員觀察顯示器拓撲的變更,並列舉系統目前定義的 DisplayAreas。

如需更多資訊,請參閱管理應用程式視窗

輸入

這些輸入 API 支援 WinUI,並為開發人員提供較低層級的 API 介面,以便達成更進階的輸入互動。

新功能

重要限制

  • 所有 PointerPoint 靜態 factory 函式皆已移除:GetCurrentPointGetCurrentPointTransformedGetIntermediatePointsGetIntermediatePointsTransformed
  • Windows 應用程式 SDK 不支援使用指標識別碼擷取 PointerPoint 物件。 不過,您可以改用 PointerPoint 成員函式 GetTransformedPoint 擷取現有 PointerPoint 物件的轉變版本。 針對中繼點,您可以使用 PointerEventArgs 成員函式 GetIntermediatePointsGetTransformedIntermediatePoints
  • 直接使用平台 SDK API Windows.UI.Core.CoreDragOperation 對於 WinUI 應用程式不適用。
  • PointerPoint 屬性 RawPositionContactRectRaw 已移除,因為它們參照非預測值,這些值與 OS 的正常值相同。 請改用 PositionContactRect。 指標預測功能現在是由 Microsoft.UI.Input.PointerPredictor API 物件來處理。

應用程式生命週期

通常應用程式生命週期功能已經存在 UWP 平台,且已經納入 Windows 應用程式 SDK 供桌面應用程式類型使用,尤其未封裝的主控台應用程式、Win32 應用程式、Windows 表單應用程式和 WPF 應用程式。 Windows 應用程式 SDK 導入的這些功能無法使用在 UWP 應用程式,因為 UWP 平台本身已經有相同功能。

重要

如果您正在處理 UWP 應用程式,請參閱從 UWP 移轉至 Windows 應用程式 SDK (機器翻譯)。

非 UWP 應用程式也能封裝到 MSIX 套件。 雖然這些應用程式可使用部分 Windows 應用程式 SDK 的應用程式生命週期功能,但如有資訊清單方法,就必須使用這類方法。 舉例來說,它們無法使用 Windows 應用程式 SDK 的 RegisterForXXXActivation API,且必須改為透過資訊清單註冊大量啟用。

已封裝應用程式的所有限制也適用於已封裝的 WinUI 應用程式,此外亦請參考下述其他考量。

重要考量

  • 豐富啟用: GetActivatedEventArgs

  • 註冊/取消註冊大量啟用

    • 未封裝的應用程式:完全可用。
    • 已封裝的應用程式:無法使用,請改用應用程式的 MSIX 指令清單。
    • 如需詳細資訊,請參閱大量啟用
  • 單一/多實例

    • 未封裝的應用程式:完全可用。
    • 已封裝的應用程式:完全可用。
    • WinUI 應用程式:如果應用程式想要偵測其他執行個體並重新導向啟用,就必須儘早執行,並在初始化任何視窗等動作之前完成。若要達成此目的,應用程式必須定義 DISABLE_XAML_GENERATED_MAIN,並撰寫自訂的 Main (C#) 或 WinMain (C++),以便讓它執行偵測和重新導向。
    • RedirectActivationToAsync 是非同步呼叫,如果您的應用程式正在執行 STA,請勿等候非同步呼叫。 如果是 Windows Forms 和 C# WinUI 應用程式,您可以視需要宣告 Main 為非同步。 如果是 C++ WinUI 和 C# WPF 應用程式,您無法將 Main 宣告為非同步,因此您必須將重新導向呼叫移至其他執行緒,確保不會封鎖 STA。
    • 如需更多資訊,請參閱應用程式執行個體化
  • 電源/狀態通知

    • 未封裝的應用程式:完全可用。
    • 已封裝的應用程式:完全可用。
    • 如需更多資訊,請參閱電源管理

已知問題

  • 檔案類型關聯性會錯誤將 %1 編碼為 %251 設定動詞處理常式的命令列範本時,使未封裝的 Win32 應用程式當機。 您的部份解決辦法是手動將登錄值手動邊即為 %1。 如果目標檔案路徑有空格,則此問題仍會失敗,且此情境沒有解決辦法。
  • 這些單一/多重執行個體錯誤將會在即將推出的維修修補程式中修正:
    • 編譯 x86 時,AppInstance 重新導向無法運作
    • 註冊金鑰、取消註冊金鑰,然後再重新註冊會導致應用程式當機

DWriteCore

DWriteCore 是 DirectWrite 的 Windows 應用程式 SDK 實作 (DirectWrite 是用於高品質文字渲染、與解析度無關的輪廓字體以及完整 Unicode 文字和佈局支援的 DirectX API)。 DWriteCore 是 DirectWrite 的一種形式,可在低至 Windows 10 版本 1809 (10.0,17763 版) 的 Windows 版本上執行,並讓您自由地跨平台使用。

功能 DWriteCore 包含 DirectWrite 的所有功能,但存在一些例外。

重要限制

  • DWriteCore 不包含以下 DirectWrite 功能:
    • 各工作階段字型
    • 使用者定義的字元 (EUDC) 字型
    • 字型串流 API
  • 低層級轉譯 API 僅提供部分支援。
  • DWriteCore 不與 Direct2D 互通,但您可以使用 IDWriteGlyphRunAnalysisIDWriteBitmapRenderTarget

如需詳細資訊,請參閱 DWriteCore 概觀

MRT 核心

MRT Core 是新式 Windows 資源管理系統的簡化版本,會隨 Windows 應用程式 SDK 一起發布。

重要限制

  • 在 .NET 專案中,如果應用程式已經組建,已複製並貼到專案資料夾的資源檔案就不會在按 F5 後加入索引。 重新組建應用程式即可解決問題。 如需更多資訊,請參閱問題 1503
  • 在 .NET 專案中,如果使用 Visual Studio UI 將資源檔案新增至專案,預設可能不會將檔案加入索引。 如需更多資訊,請參閱問題 1786。 若要解決此問題,請移除 CSPROJ 檔案中的下列項目:
    <ItemGroup>
        <Content Remove="<image file name>" />
    </ItemGroup>
    <ItemGroup>
        <PRIResource Remove="<resw file name>" />
    </ItemGroup>
    
  • 如果是未封裝的 C++ WinUI 應用程式,資源 URI 不會正確組建。 若要解決此問題,請在 vcxproj 新增下列項目:
    <!-- Add the following after <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> -->
    
    <PropertyGroup>
        <AppxPriInitialPath></AppxPriInitialPath>   
    </PropertyGroup>
    

有關更多信息,請參閱使用 MRT Core 管理資源

部署

新增和更新功能

重要限制

  • 啟動程序載入程式 API 的 .NET 包裝函式僅供未封裝的 .NET 應用程式用於簡化 Windows 應用程式 SDK 的存取。
  • 只有完全信任或具備 packageManagement 受限功能的 MSIX 封裝應用程式有權限使用部署 API 來安裝主要且單一的套件相依性。 我們會在之後的版本支援部分信任的封裝應用程式。
  • 在 x64 系統對使用 DeploymentManager.Initialize 方法的 x86 應用程式執行 F5 測試時,請先執行 WindowsAppRuntimeInstall.exe,確保 x64 架構已經安裝。 否則,由於 Visual Studio 並未部署 x64 架構 (通常透過 Store 部署或側載而造成),您會遇到 NOT_FOUND 錯誤。

其他限制和已知問題

  • 不支援任何 CPU 組建元件新增 Windows 應用程式 SDK 至支援任何 CPU 的現有 .NET 應用程式或元件時,您必須指定所需的架構:x86x64arm64

  • 從 .NET 5 升級至 .NET 6:在 Visual Studio UI 升級時,可能會遇到組建錯誤。 您可以手動將專案檔的 TargetFrameworkPackage 更新為下列項目來解決問題:

        <TargetFramework>net6.0-windows10.0.19041.0</TargetFramework> 
    
  • 如未安裝 C++ UWP 工具,C# 單一專案 MSIX 應用程式就無法編譯。 如果您有 C# 單一專案 MSIX 的專案,就必須安裝 C++ (v14x) 通用 Windows 工具的選用元件。

  • 安裝多個 Visual Studio 2019 版本時,之後的語言 VSIX 無法安裝到 Visual Studio 2019。 如果您已安裝多個 Visual Studio 2019 版本 (例如發布版和預覽版),接著安裝 C++ C# 的 Windows 應用程式 SDK VSIX,則第二項安裝會失敗。 若要解決問題,請在安裝第一種語言 VSIX 之後解除安裝 Visual Studio 2019 的單一專案 MSIX 封裝工具。 如需詳細了解此問題,請參閱這項意見反應

  • DispatcherQueue.TryEnqueue (恢復發送器佇列執行緒的執行) 的替代方案是使用 Windows 實作程式庫 (WIL)resume_foreground 協助程式功能:

    1. 對專案新增 Microsoft.Windows.ImplementationLibrary NuGet 套件的參照。
    2. 新增 #include <wil/cppwinrt_helpers.h>pch.h
    3. 新增 #include <winrt/Microsoft.UI.Dispatching.h>pch.h
    4. 接著 co_await wil::resume_foreground(your_dispatcherqueue);

第 0.8 版

Windows 應用程式 SDK 穩定通道 0.8.x 譜系最新的可用版本是 0.8.12 版。

注意

Windows 應用 SDK 以前是以代號 Project Reunion 來稱呼。 0.8 版和更早版本中的某些 SDK 資產仍使用這個代號。 在參考現有資產或特定舊版時,文件中某些區域仍使用 Project Reunion

第 0.8.12 版

這是 Windows 應用程式 SDK 的維修版本,其中包含 0.8.0 版的重要錯誤修正。

注意

如果您是 C# 開發人員,您需要下列其中一個 .NET SDK 版本:5.0.213、5.0.407、6.0.104、6.0.202 (或之後的版本)。 若要更新 .NET SDK 版本,請前往 .NET 下載項目或更新至 Visual Studio 最新版。 在沒有所需 .NET SDK 版本的情況下更新 NuGet 套件時,您會看到如下的錯誤:「此版本的 WindowsAppSDK 需要 .NET 6+ 和 WinRT.Runtime.dll 1.6 版或更高的版本。」

更新:

第 0.8.11 版

這是 Windows 應用程式 SDK 的維修版本,其中包含 0.8.0 版的重要錯誤修正。

注意

如果您是 C# 開發人員,您需要下列其中一個 .NET SDK 版本:5.0.213、5.0.407、6.0.104、6.0.202 (或之後的版本)。 若要更新 .NET SDK 版本,請前往 .NET 下載項目或更新至 Visual Studio 最新版。 在沒有所需 .NET SDK 版本的情況下更新 NuGet 套件時,您會看到如下的錯誤:「此版本的 WindowsAppSDK 需要 .NET 6+ 和 WinRT.Runtime.dll 1.6 版或更高的版本。」

更新:

  • 已修正使用滑鼠選取文字時觸發焦點遺失事件的迴歸問題。

第 0.8.10 版

這是 Windows 應用程式 SDK 的維修版本,其中包含 0.8.0 版的重要錯誤修正。

注意

如果您是 C# 開發人員,您需要下列其中一個 .NET SDK 版本:5.0.213、5.0.407、6.0.104、6.0.202 (或之後的版本)。 若要更新 .NET SDK 版本,請前往 .NET 下載項目或更新至 Visual Studio 最新版。 在沒有所需 .NET SDK 版本的情況下更新 NuGet 套件時,您會看到如下的錯誤:「此版本的 WindowsAppSDK 需要 .NET 6+ 和 WinRT.Runtime.dll 1.6 版或更高的版本。」

更新:

  • 已修正應用程式有時會在拖放操作中當機的問題。

注意

Windows 應用程式 SDK 0.8.9 並未發布。 在 0.8.8 之後直接發布的版本是 0.8.10。

第 0.8.8 版

這是 Windows 應用程式 SDK 的維修版本,其中包含 0.8.0 版的重要錯誤修正。

注意

如果您是 C# 開發人員,您需要下列其中一個 .NET SDK 版本:5.0.213、5.0.407、6.0.104、6.0.202 (或之後的版本)。 若要更新 .NET SDK 版本,請前往 .NET 下載項目或更新至 Visual Studio 最新版。 在沒有所需 .NET SDK 版本的情況下更新 NuGet 套件時,您會看到如下的錯誤:「此版本的 WindowsAppSDK 需要 .NET 6+ 和 WinRT.Runtime.dll 1.6 版或更高的版本。」

更新:

  • 已修正 TextBox 中與軟式鍵盤和一般互動有關的觸控輸入問題。 這些問題也會影響鍵盤捷徑。 如需詳細資訊,請參閱 GitHub 的問題 6291
  • 已修正應用程式視窗有時會在使用中時顯示為非使用中的問題。
  • 已修正 UIA (使用者介面自動化) 在外部程序執行造成的效能問題。
  • 已修正手寫筆輸入的應用程式穩定性問題。
  • 已修正 UIA 造成功能表的 png 圖示轉譯大幅延遲的問題。

第 0.8.7 版

這是 Windows 應用程式 SDK的維修版本,其中包含多項 C#/.NET 應用程式的效能更新。 若要更新至此版本,務必參照最新的 Windows SDK 套件版本。 若要執行此動作,請以您的應用程式從 TargetFramework 屬性指定的 SDK 版本,將屬性 <WindowsSdkPackageVersion>10.0.<sdk_version>.24</WindowsSdkPackageVersion> 新增到 .csproj 檔案。 例如:

<Project Sdk="Microsoft.NET.Sdk">
   <PropertyGroup>
       <OutputType>WinExe</OutputType>
       <TargetFramework>net6.0-windows10.0.19041.0</TargetFramework>
       <TargetPlatformMinVersion>10.0.17763.0</TargetPlatformMinVersion>
       <WindowsSdkPackageVersion>10.0.19041.24</WindowsSdkPackageVersion>
   <PropertyGroup>
   ...

這個版本的 Windows SDK 投影將在即將推出的 .NET 6 維修版本中提供。 在該項 .NET SDK 更新可供使用之後,請從專案檔中移除 <WindowsSdkPackageVersion> 屬性。

如果您未設定此屬性,就會看到如下錯誤:"Error: This version of Project Reunion requires WinRT.Runtime.dll version 1.6 or greater."

第 0.8.6 版

這是 Windows 應用程式 SDK 的維修版本,其中包含多項 0.8.0 版 C#/.NET 應用程式的效能改良。

若要更新此版本的 Windows 應用程式 SDK,您必須安裝最新的 .NET SDK 12 月更新 (請參閱下載 .NET.NET 5 將於 2022 年 5 月 10 日終止支援)。 如果您沒有安裝 .NET SDK 的最低必要版本,就會看到如下錯誤:"Error: This version of Project Reunion requires WinRT.Runtime.dll version 1.4 or greater."

錯誤修正

如需詳細的效能改良清單,請參閱 C#/WinRT 1.4.1 版本資訊

第 0.8.5 版

這是 Windows 應用程式 SDK 的維修版本,其中包含更多 0.8.0 版的重大錯誤修正。

錯誤修正

  • 已修正 WinUI 應用程式使用指標輸入時當機的問題。
  • 已修正 Windows 11 的標題列按鈕 (最小化、最大化、關閉) 沒有圓角的問題。
  • 已修正在 Windows 11 上將滑鼠懸停在最大化/還原按鈕上方時,重設大小的版面配置選項不會顯示的問題。
  • 已修正在建立 PointCollection 物件時發生當機例外狀況的問題。 如需詳細資訊,請參閱 GitHub 的問題 971

下節另有標註者之外,0.8 版的限制和已知問題也適用於 0.8.5 版。

第 0.8.4 版

這是 Windows 應用程式 SDK 的維修版本,其中包含更多 0.8.0 版的重大錯誤修正。

錯誤修正

  • 已修正自訂標題列,讓 ContentDialog 不會遮蓋它,且標題列按鈕會有圓角。
  • 已修正顯示比例變更時影像處理會當機的問題。
  • 已修正 UI 消失或裁剪不正確的裁剪錯誤

下節另有標註者之外,0.8 版的限制和已知問題也適用於 0.8.4 版。

第 0.8.3 版

這是 Windows 應用程式 SDK 的維修版本,其中包含更多 0.8.0 版的重大錯誤修正。

錯誤修正

將視窗最小化然後再還原時,鍵盤焦點會消失,需要點擊滑鼠才能復原焦點。

下節另有標註者之外,0.8 版的限制和已知問題也適用於 0.8.3 版。

第 0.8.2 版

這是 Windows 應用程式 SDK 的維修版本,其中包含更多 0.8.0 版的重大錯誤修正。

錯誤修正

  • Visual Studio 2022 Preview 2 和之後的版本現在已支援 Windows 應用程式 SDK 和 WinUI 3。
  • 使用 .NET 應用程式時,您可能會在傳入列舉陣列時收到以下錯誤:Object contains non-primitive or non-blittable data.
  • 在文字方塊內使用手寫面板來書寫會導致當機
  • 圖示/影像始終以 100% 的比例值載入,而不是以監視器比例值為依據
  • EventSource<T> 的垃圾集合會導致後續無法取消訂閱處理常式 (如需詳細資訊,請參閱 GitHub 問題)
  • 安全性修正 – 如需詳細資訊,請參閱 CVE-2021-34533
  • SwapChainPanel.CompositionScaleChanged 有時會在變更顯示比例之後傳回不正確的 CompositionScale 值

下節另有標註者之外,0.8 版的限制和已知問題也適用於 0.8.2 版。

0.8.1 版

這是 Windows 應用程式 SDK 的維修版本,其中包含少數 0.8.0 版的重大錯誤修正。

錯誤修正

  • Windows 應用程式 SDK 無法在最新的 Windows 測試人員版本執行
  • 輸入下拉式清單未顯示的值時,EditableComboBox 會當機
  • WebView2 不允許使用者在收到焦點之後跳離
  • 在 WinUI 產生的程式碼中完整限定 Windows.Foundation.Metadata.DefaultOverload 命名空間,避免命名空間不明確
    • 這會修正 Bug #5108
  • 安全性修正 – 如需詳細資訊,請參閱 CVE-2021-34489

下節另有標註者之外,0.8 版的限制和已知問題也適用於 0.8.1 版。

0.8.0 Stable 版

新增和更新功能

此版本支援所有穩定通道功能

WinUI 3

此版本包含許多 WinUI 3 的錯誤修正,並改善穩定性。 以下是 WinUI 3 - Project Reunion 0.5 發行以來,WinUI 3 的所有變更:

  • 樞紐控制項已再度新增,現在已可用於任何 WinUI 3 應用程式。

  • 此版本包含 Project Reunion v0.5.5、v0.5.6 和 v0.5.7 的所有錯誤修正。

  • 新的錯誤修正包括:

    • 在文字方塊中按滑鼠右鍵,會導致應用程式損毀
    • NavigationView 會導致 UWP、Reunion 0.5 預覽版當機
    • ProgressBar 不會顯示 Paused 與 Error 選項之間的差異
    • 複製/貼上/變更文字樣式時 RichEditBox 當機
    • SetTitleBar 未設定或設為 Null 時,視窗標題按鈕會錯置

    如需此版本已解決的錯誤完整清單,請參閱我們的 GitHub 存放庫

  • ColorHelper.ToDisplayName API 已不再提供。

  • 下列樣式已移除:

    • Microsoft.Graphics.IGeometrySource2D
    • Microsoft.Graphics.IGeometrySource2DInterop

    請改用 Windows.Graphics.IGeometrySource2DWindows.Graphics.IGeometrySource2DInterop

  • 命名空間中的所有 Microsoft.System 類型都已移到 Microsoft.UI.Dispatching 命名空間,包括 DispatcherQueue 類別

  • 已移除 AcrylicBrush.BackgroundSource 屬性,因為 WinUI 3 不支援將 HostBackdrop 當作 BackgroundSource 使用。

如需 WinUI 詳細資訊,請參閱 Windows UI 3 程式庫 (WinUI)

若要查看執行中的 WinUI 3 控制項和功能,您可以從 GitHub 複製並組建 WinUI 3 程式庫應用程式,或從 Microsoft Store 下載應用程式。

如要開始使用 WinUI 進行開發,請參閱下列文章:

DWriteCore

此版本的 DWriteCore 包含下列新功能和更新功能。 DWriteCore 概觀會介紹並說明 DWriteCore。

注意

DWriteCoreCreateFactory 的功能與 DirectWrite 系統版本匯出的 DWriteCreateFactory 函式相同。 DWriteCore 函式有不同的名稱,可避免在同時連結 DWriteCore.libDWrite.lib 時的模糊問題。

如需 DWriteCore 和 DirectWrite API 參考資料,請參閱 DWriteCore API 參考資料DirectWrite API 參考資料

MRTCore

  • 將資源新增至專案時,資源的組建動作會自動設定,減少手動設定專案的必要。

限制

  • Windows 測試人員計畫的開發人員通道目前不支援此版本。 此問題已在 0.8.1 版修正

  • 桌面應用程式 (C# 或 C++ 桌面):此版本僅支援在使用 MSIX 封裝的桌面應用程式 (C++ 或 C#) 中使用。 若要在未封裝的桌面應用程式使用 Windows 應用程式 SDK,您必須使用實驗版發布通道

重要

如果您正在處理 UWP 應用程式,請參閱從 UWP 移轉至 Windows 應用程式 SDK (機器翻譯)。

已知問題

  • 即時視覺化樹狀結構、即時屬性總管和熱重新載入 0.8 版和之後的版本等 WinUI 3 工具需要 Visual Studio 2019 16.11 Preview 3 和之後的版本。

  • 目前使用 WinUI 3 和 Windows 應用程式 SDK 0.8 的應用程式無法使用 Project Reunion 0.5 的類別庫。 請更新類別庫,以便使用 Windows 應用程式 SDK 0.8。

  • .NET 應用程式必須指定 18362 版或之後的版本:您的 TFM 必須設定為 net6.0-windows10.0.18362 或之後的版本,且您的封裝專案必須設定為 18362 或之後的版本。 如需更多資訊,請參閱 GitHub 問題 #921

  • 如果頻繁在淺色和深色模式之間切換,您可能會遭遇當機。

  • 使用 .NET 應用程式時,您可能會在傳入列舉陣列時收到下列錯誤:Object contains non-primitive or non-blittable data.此問題在 0.8.2 版已修正

  • 使用 .NET 應用程式時,目前沒有辦法選擇不讓系統將影像編入索引成為使用 Visual Studio UI 的應用程式資源。 若要解決此問題,請將 Directory.Build.targets 新增至專案 (請參閱 自訂您的組建 - Visual Studio 了解操作說明),並移除影像,如下所示:

    • 若要移除特定影像 (請留意相對路徑為必要):

      <Project> 
      <ItemGroup> 
          <Content Remove="..\Bitmap1.bmp" />
      </ItemGroup>
      </Project>
      
    • 若要根據中繼資料移除影像:

      <Project>
      <ItemGroup>
          <Content Remove="@(None->WithMetadataValue('Pack','true'))" />
      </ItemGroup>
      </Project>
      

    即將推出的版本預計會修正此問題 ,屆時上述解決辦法已不再需要。

第 0.5 版

Windows 應用程式 SDK 穩定通道 0.5.x 譜系最新的可用版本是 0.5.9 版。

新增和更新功能

此版本支援所有穩定通道功能

已知問題與限制

此版本有以下限制和已知問題:

  • 桌面應用程式 (C# 或 C++ 桌面):此版本僅支援在使用 MSIX 封裝的桌面應用程式 (C++ 或 C#) 中使用。 若要在未封裝的桌面應用程式使用 Windows 應用程式 SDK,您必須使用實驗版發布通道
  • .NET 應用程式必須面向內部版本 18362 或更高版本:您的 TFM 必須設定為 net6.0-windows10.0.18362 或更高版本,並且您的封包專案 <TargetPlatformVersion> 必須設定為 18362 或更高版本。 如需更多資訊,請參閱 GitHub 上的已知問題

重要

如果您正在處理 UWP 應用程式,請參閱從 UWP 移轉至 Windows 應用程式 SDK (機器翻譯)。