Windows 應用程式 SDK 1.5 的穩定通道版本資訊
穩定通道提供的 Windows 應用程式 SDK 版本可支援生產環境的應用程式使用。 使用穩定版 Windows 應用程式 SDK 的應用程式也可以發布至 Microsoft Store。
重要連結:
- 如果想要將現有應用程式從舊版的 Windows 應用程式 SDK 升級至較新版本,請參閱將現有專案更新至最新版本的 Windows 應用程式 SDK。
最新穩定通道版本:
Windows 應用程式 SDK 的下載項目
注意
Windows 應用程式 SDK Visual Studio 延伸模組 (VSIX) 不再以獨立下載的形式發布。 它們改在 Visual Studio 內 的Visual Studio Marketplace 提供。
版本 1.5.9 (1.5.250108004)
這是 Windows 應用程式 SDK 的維修版本,其中包含 1.5 版的重要錯誤修正。
- 修正了當 CommandBar 位於視窗底部時,CommandBar 相關功能表可能會不正確地向上開啟而不是向下開啟的另一個潛在問題。
- 已修正在舊版圖形硬體上執行時可能發生損毀的問題。
版本 1.5.8 (1.5.241107002)
這是 Windows 應用程式 SDK 的維修版本,其中包含 1.5 版的重要錯誤修正。
- 已修正線程上的輸入佇列似乎處於不良狀態時的潛在當機。
- 已修正使用
{x:Bind}
時,檢查每個元件是否有 Null 時可能發生的當機。 想要此修正程式的應用程式必須重新編譯此版本。
版本 1.5.7 (1.5.241001000)
這是 Windows 應用程式 SDK 的維修版本,其中包含 1.5 版的重要錯誤修正。
- 已針對應用程式停止轉譯且永不復原的罕見案例新增偵測。
- 已修正UI線程未初始化時的潛在損毀。
- 已修正當 CommandBar 位於視窗底部時,關閉 CommandBar 功能表可能未正確開啟而不是向下的問題。
版本 1.5.6 (1.5.240802000)
這是 Windows 應用程式 SDK 的維修版本,其中包含 1.5 版的重要錯誤修正。
- 已修正有時中斷輸入到 Min/Max/Close 按鈕的問題
InputNonClientPointerSource
。 如需詳細資訊,請參閱 GitHub 問題 #9749。 - 已修正在使用觸控板時關閉視窗時可能發生的當機問題。
版本 1.5.5 (1.5.240627000)
這是 Windows 應用程式 SDK 的維修版本,其中包含 1.5 版的重要錯誤修正。
- 已修正在映像載入完成之前變更映像來源時,映像載入期間可能發生的當機。
- 已修正使用
InputNonClientPointerSource
時可能發生的當機問題。 - 修正了只包含 WebView2 控制件的視窗無法正確將初始鍵盤焦點設定到 WebView2 的問題,讓鍵盤和輔助功能工具無法使用。 如需詳細資訊,請參閱 GitHub 問題 WebView2Feedback#2330。
版本 1.5.4 (1.5.240607001)
這是 Windows 應用程式 SDK 的維修版本,其中包含 1.5 版的重要錯誤修正。
- 修正了修正 GitHub 問題 #8857 的問題,以將連結庫的 resources.pri 正確合併到應用程式的 resources.pri。
- 已修正 WebView2 在每次按兩下時傳送額外
blur
事件和focus
事件的問題。 如需詳細資訊,請參閱 GitHub 問題 #9288。 這也會修正下拉式清單未回應的問題,如 GitHub 問題 #9566 所示。 - 已修正建立新視窗或快顯已取消任何進行中的拖曳作業的問題。 如需詳細資訊,請參閱 GitHub 問題 #9360。
- 修正了定義負面檢視框的SVG檔案不再轉譯的問題。 如需詳細資訊,請參閱 GitHub 問題 #9415。
- 已修正在使用弱式參考之前未檢查
x:Bind
的問題,這可能會導致當機。 如需詳細資訊,請參閱 GitHub 問題 #9551。 - 已修正當視窗最大化時,在標題欄邊緣不正確地顯示重設大小游標的問題,這也會導致在這些區域中單擊或拖曳時發生錯誤的行為。 如需詳細資訊,請參閱 GitHub 問題 #8665。
版本 1.5.3 (1.5.240428000)
這是 Windows 應用程式 SDK 的維修版本,其中包含 1.5 版的重要錯誤修正。
- 已修正
ItemsRepeater
有時候會導致視窗出現在最前面的問題。 - 已修正當更新
AcrylicBrush
的透明度狀態時可能發生的當機情形。 - 已修正若
ItemsRepeater
快顯視窗比主視窗更長或更寬時,ShouldConstrainToRootBounds="false"
無法產生足夠項目的問題。 - 已修正當專案檔案未指定 TargetPlatformVersion 時,在建置階段可能發生 MSB4086 錯誤的問題。 這個錯誤發生在 GitHub 問題 #9531 中。
版本 1.5.2 (1.5.240404000)
這是 Windows App SDK 的一個服務版本,其中包括針對 1.5 版本的重要錯誤修復和 Widget 資料提供程序的新功能。
Widget 資料提供者更新
- 現在,資料提供者可以在 Widgets Dashboard 中顯示公告:
- 新的
FeedManager.TryShowAnnouncement
API 允許 Feed Provider 請求 Widget Dashboard 顯示他們的公告。 若要顯示您的公告,請建立一個FeedAnnouncement
物件並喚醒FeedManager.TryShowAnnouncement
API。 - Feed 公告將在工作列中顯示自己的徽章,可以使用
FeedAnnouncement
API 進行自訂。
- 新的
- 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,如果特定執行緒上的所有
WindowsXamlManager
和DesktopWindowXamlSource
物件都已關閉,或在該執行緒執行的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 驅動,可提供下列功能:
- 以地圖按鈕或觸控方式移動與縮放。
- 將地圖樣式變更為衛星、地形或街道檢視。
- 以程式設計方式將可互動釘選與開發人員可自定義的圖示新增至地圖。
- 開發人員可自訂地圖初次載入時的置中位置。
- 開發人員可控制要隱藏或顯示移動、縮放和地圖樣式的按鈕。
注意
若要使用 Maps
控制項,您需要 Azure 地圖金鑰。 如要建立金鑰,請參閱 Azure 地圖文件中建立 Web 應用程式的頁面。
Maps
控制項是全新功能,如有意見,歡迎告知我們,以便評估日後調整方向!
新增 SelectorBar 控制項
我們在 1.5 新增了 SelectorBar
控制項,可讓使用者切換多種資料檢視。 此控制項在我們過去的 1.5 藍圖中稱為「SegmentedControl」。
CommandBarFlyout 主要命令的標籤
CommandBarFlyout
的視覺效果已更新,如果您已在 Label
設定 AppBarButton
屬性,它就會在主要命令區域中顯示項目的文字標籤。 之前,CommandBarFlyout
區域中的主要命令只會顯示圖示,但現在已可同時顯示圖示和標籤,讓使用性更提升。
WebView2 支援自訂環境/選項
WinUI WebView2
控制項現在已提供可讓您使用自訂 CoreWebView2
和 CoreWebView2Environment
來自訂基礎 CoreWebView2ControllerOptions
物件的功能。 這可讓應用程式作者指定載入 WebView2Runtime 的替代路徑、選擇使用不同的 UserDataFolder,或設定 IsPrivateModeEnabled 和 ScriptLocale 等選項。
.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 的拖放支援
- 為了釐清,支援在 1.5 中拖曳至 WebView2,例如將 PNG 從 檔案總管 拖曳至 Bing 以進行視覺搜尋。 工作正在進行 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
ItemsRepeater
運作的問題DataTemplate
。 關於更多資訊,請參閱 GitHub 問題 #560。 - 已修正在 Visual Studio 中執行應用程式時,如果應用程式內工具列已啟用則會當機的問題。 需要 Visual Studio 17.8 Preview 2 或之後的版本,才能取得完整修正。 關於更多資訊,請參閱 GitHub 問題 #8806。
- 已修正
AnnotatedScrollbar
有時會在快速捲動時當機的問題。 - 已修正功能表文字有時會截斷的問題。
- 已修正教學提示無法接收正確焦點的問題。 關於更多資訊,請參閱 GitHub 問題 #3257。
- 已修正將
TailVisibility
的TeachingTip
設為於啟動時 Collapsed 會造成應用程式當機的問題。 關於更多資訊,請參閱 GitHub 問題 #8731。 - 已修正使用程式庫時系統會如何處理 PRI 檔案的問題。 關於更多資訊,請參閱 GitHub 問題 #8857。
- 已修正 1.5-experimental2 版本中投影 DLL 無法產生的問題。 關於更多資訊,請參閱 GitHub 問題 #4152。
- 已修正
RichEditBox
文字格式化快顯示窗的省略符號按鈕無法正確顯示動作清單的問題。 關於更多資訊,請參閱 GitHub 問題 #9140。 - 已修正
ListView
無法正確處理鍵盤加速器的問題。 關於更多資訊,請參閱 GitHub 問題 #8063。 - 已修正使用
AccessKey
關閉視窗時的存取違規問題。 關於更多資訊,請參閱 GitHub 問題 #8648。 - 已修正使用
AccessKey
關閉視窗時當機的問題。 關於更多資訊,請參閱 GitHub 問題 #9002。 - 已修正
MenuFlyoutItem
中的MenuBar
文字對齊受到影響的問題。 關於更多資訊,請參閱 GitHub 問題 #8755。 - 已修正反白文字無法在按右鍵時維持反白的問題。 關於更多資訊,請參閱 GitHub 問題 #1801。
- 已修正閒置視窗關閉時造成應用程式當機的問題。 關於更多資訊,請參閱 GitHub 問題 #8913。
- 已修正以滑鼠中鍵滑動並隨後立即按左鍵時導致應用程式停格的問題。 關於更多資訊,請參閱 GitHub 問題 #9233。
- 已修正在使用自訂
NavigationViewItem
時,導致應用程式在啟動時當機的問題。 關於更多資訊,請參閱 GitHub 問題 #8814。 - 修正了省略號按鈕會錯誤產生錯誤的
NavigationView
問題。 關於更多資訊,請參閱 GitHub 問題 #8380。 - 修正了
SystemBackdrop
在多視窗應用程式中無法正確渲染的問題。 關於更多資訊,請參閱 GitHub 問題 #8423。 - 修正了插入到
ObservableCollection
開頭時的重複問題。 關於更多資訊,請參閱 GitHub 問題 #8370。