Windows App SDK Changelog

What's new in Windows App SDK 1.5.3

May 2, 2024
  • This is a servicing release of the Windows App SDK that includes critical bug fixes for the 1.5 release:
  • Fixed an issue where ItemsRepeater sometimes caused its window to be brought to the front.
  • Fixed a potential crash when the transparency state of an AcrylicBrush was updated.
  • Fixed an issue where ItemsRepeater would not generate enough items if it was in a ShouldConstrainToRootBounds="false" popup that was taller or wider than the main window.
  • Fixed an issue where error MSB4086 could occur at build time if the project file didn't specify a TargetPlatformVersion. This error was hit as part of GitHub issue #9531.

New in Windows App SDK 1.5.2 (Apr 11, 2024)

  • Feed providers are now able to show announcements in the Widgets Dashboard:
  • The new FeedManager.TryShowAnnouncement API allows a Feed Provider to request that the Widget Dashboard show their announcements. To show your announcement, create a FeedAnnouncement object and call the FeedManager.TryShowAnnouncement API.
  • Feed announcements will have their own badges displayed in the taskbar that can be customized using the FeedAnnouncement API.
  • Feed providers can now opt in to receive Analytics and Error Reports information about their provider as a user interacts with it. To opt in, implement the IFeedProviderAnalytics and/or IFeedProviderErrors interfaces by your provider.
  • Bug fixes:
  • Fixed an issue where DispatcherTimer would not fire at the correct time if the primary display wasn't running at 60 Hz.
  • Fixed an issue where a textbox input method editor (IME) window would be incorrectly positioned when running at a scale factor other than 100%. For more info, see GitHub issue #9382.
  • Fixed an issue where a drag-and-drop operation started from another app might not allow the correct Copy/Move/Link drop operations.
  • Fixed a potential crash when a ListView's ItemsSource is reset and given focus right away.
  • Fixed a problem where ShouldConstrainToRootBounds="false" popups/flyouts don't apply any inherited scale transform. For more info, see GitHub issues #9118 and #9433.
  • Fixed a potential crash when a Composition object is destroyed with an animation still running.
  • Fixed a potential crash on shutdown in NavigationView::RevokeNavigationViewItemRevokers.

New in Windows App SDK 1.5.1 (Mar 13, 2024)

  • This is a servicing release of the Windows App SDK that includes critical bug fixes for the 1.5 release:
  • Fixed an issue where self-contained apps may fail to build due to not being able to copy "map.html".
  • Fixed an issue where MapControl would fail to initialize due to rejecting valid tokens. For more info, see GitHub #9324.
  • Fixed an issue where MapControl loaded with a blue background. For more info, see GitHub #9377.
  • Fixed an issue where clicking on the chevron of a NavigationViewItem did not correctly expand or collapse on a single click. This also caused menus to show as blank when clicking the chevron in PaneDisplayMode="Top" mode. For more info, see GitHub #9423 and #9426.
  • Fixed an issue where tapping on a NavigationViewItem with touch or pen would prevent the item from responding to any future input. For more info, see GitHub #9429.
  • Fixed a crash when clicking on an item in the NavigationView.PaneFooter area. For more info, see GitHub #9396.
  • Fixed an issue where icons in menus were sometimes showing in the wrong place. For more info, see GitHub #9409.
  • Fixed an issue where acrylic does not show on menus until switching away from the window and back. For more info, see GitHub #9406.
  • Fixed a crash which could occur during TextBox/RichEditBox initialization. For more info, see GitHub #9216.
  • Fixed some noisy exceptions which NavigationView threw and caught on destruction.
  • Fixed an issue where a "pinch to zoom" gesture would sometimes show up as a pan or tap due to an incorrect PointerCaptureLost message firing.

New in Windows App SDK 1.5.0 (Mar 1, 2024)

  • XAML Islands runtime and shutdown updates:
  • There is a behavioral difference between WinAppSDK 1.4 and WinAppSDK 1.5 for XAML Islands-based apps when the last XAML Window on any thread is closed.
  • In WinAppSDK 1.4, the XAML runtime always exits the thread's event loop when the last XAML window on a thread is closed.
  • In WinAppSDK 1.5:
  • If your app is a WinUI Desktop app, the default behavior is still the same as in WinAppSDK 1.4.
  • If you're using XAML for the DesktopWindowXamlSource ("XAML Islands") API, the default behavior is now that XAML does not automatically exit the thread's event loop.
  • In both modes, you can change this behavior by setting the Application.DispatcherShutdownMode property.
  • For more information, see the documentation for the Application.DispatcherShutdownMode property when available. This completes GitHub proposal #8492.
  • There is a behavioral difference between WinAppSDK 1.4 and WinAppSDK 1.5 for XAML Islands-based apps in the lifetime of the XAML runtime:
  • In WinAppSDK 1.4, the XAML runtime shuts down on a thread if either all WindowsXamlManager and DesktopWindowXamlSource objects on a given thread are closed or shut down, or the DispatcherQueue running on that thread is shut down (in this case, the XAML runtime shuts down during the DispatcherQueue.FrameworkShutdownStarting stage).
  • In WinAppSDK 1.5, the XAML runtime shuts down on a thread only when the DispatcherQueue running on that thread is shut down (the Xaml runtime always shuts down during the DispatcherQueue.FrameworkShutdownStarting stage).
  • For more information, see the documentation for the WindowsXamlManager class when available.
  • There is a behavioral difference in WindowsXamlManager.InitializeForCurrentThread():
  • In WinAppSDK 1.4, WindowsXamlManager.InitializeForCurrentThread() returns a unique instance of a WindowsXamlManager object with each call.
  • In WinAppSDK 1.5, WindowsXamlManager.InitializeForCurrentThread() returns an existing instance if one already exists on the thread. Close/Dispose() is now ignored.
  • WinUI Maps control:
  • The WinUI Maps control is now available! This control is powered by WebView2 and Azure Maps, providing the following features:
  • Panning and zooming with either the map buttons or touch.
  • Changing the style of the map to satellite, terrain, or street view.
  • Programatically adding interactable pins with developer-customizable icons to the map.
  • Developer customization for where the map is centered on initial load.
  • Control for developers over hiding or showing the buttons for panning, zooming, and map styles.
  • New SelectorBar control:
  • In 1.5, we've added a new SelectorBar control for enabling users to switch between multiple views of data. This control was previously known as "SegmentedControl" on our 1.5 roadmap.
  • WinUI 3 SelectorBar Control:
  • Labels in the CommandBarFlyout primary commands:
  • The visuals of the CommandBarFlyout have been updated to display a text label for the items in the primary commands area if the Label property has been set on the AppBarButton. Previously, the primary commands in the CommandBarFlyout area only displayed an icon, but now they can show both an icon and a label for improved usability.
  • WinUI 3 CommandBarFlyout Labels:
  • WebView2 support for custom environment/options:
  • The WinUI WebView2 control now exposes the ability to customize the underlying CoreWebView2 object with a custom CoreWebView2Environment and CoreWebView2ControllerOptions. This enables the app author to specify an alternate path from which to load the WebView2Runtime, choose to use a different UserDataFolder, or set options such as IsPrivateModeEnabled and ScriptLocale.
  • Suppport for .NET 8:
  • We added support for .NET 8 in a recent 1.4 servicing release, but that still kept the warning for the use of platform-specific RIDs. In 1.5, we completed that work so that the warning is no longer present.
  • Improved debugging and source availability:
  • We now inject Github source server information for code in the microsoft-ui-xaml repo into our public symbols, allowing debuggers to automatically download source code. We also made other fixes and improvements to our symbols across the entire WinAppSDK to improve the debugging experience.
  • Improved functionality for debugging layout cycles:
  • Debugging layout cycles in a WinUI app can be a challenge, so in 1.5 the DebugSettings object now exposes options to enable improved logging and breakpoints for the layout process to make it easier to debug and fix layout cycles in the app.
  • Other new features from across the WinAppSDK:
  • Added support for the PublishSingleFile deployment model. For more info about PublishSingleFile, see the Single-file deployment documentation.
  • Added improvements to screen reader support, text scaling support, and other accessibility features.
  • Various stability and performance improvements based on our prioritized GitHub bug backlog.
  • New features being released separately:
  • New versions of the WinAppSDK Visual Studio Templates for C# and C++ are being released through the Visual Studio Marketplace and they will appear a few weeks after the release of 1.5. With the new version, the templates may now be released independently of WinAppSDK releases, giving us much more flexibility in getting updates to customers.
  • Other previously planned features:
  • In 1.5, we made progress on the following features that we announced on our roadmap, but did not complete them. They will continue into the 1.6 timeframe.
  • Tabbed windows
  • Drag-n-drop support for WebView2
  • Investigations into the table view and ink controls
  • Dynamic lighting has been removed from the roadmap for the time being.

New in Windows App SDK 1.4.5 (Feb 15, 2024)

  • Fixed an issue that could hang applications when clicking a mouse button while scrolling with the mouse wheel. For more info, see GitHub issue #9233.
  • Fixed an issue with duplicate assets when referencing a chain of NuGet packages. For more info, see GitHub issue #8857.
  • Fixed several BreadcrumbBar issues including a memory leak, a crash when the ellipsis menu is empty, and the ellipsis menu being incorrectly constrained within the window.
  • Fixed a potential crash on shutdown when releasing graphics resources.

New in Windows App SDK 1.4.4 (Jan 10, 2024)

  • This is a servicing release of the Windows App SDK that includes critical bug fixes for the 1.4 release:
  • Fixed a WinUI 3 diagnostics security issue.
  • Fixed an input issue where the password box didn't show the on-screen keyboard when activated via touch. For more info, see GitHub issue #8946.
  • Fixed an issue that caused the Microsoft.UI.Xaml.Controls.dll file size to grow unexpectedly.
  • Fixed a CommandBarFlyout issue that could cause crashes when setting focus.
  • Updated Windows App SDK support for .NET 8 RID-specific asset handling.
  • Fixed an issue causing some swapchains to be positioned or stretched incorrectly.

New in Windows App SDK 1.5 Experimental (Dec 28, 2023)

  • New APIs:
  • 1.5-experimental1 includes the following new APIs. These APIs are not experimental, but are not yet included in a stable release version of the WinAppSDK.
  • Additional Experimental APIs:
  • This release includes the following new and modified experimental APIs

New in Windows App SDK 1.4.3 (Nov 18, 2023)

  • Fixed an issue where a menu could appear without a background for a short period of time.
  • Fixed a crash that may occur in specific multi-monitor scenarios.
  • Fixed an issue where a context menu could appear off-screen.
  • Fixed an issue with Window styles and maximizing behavior. For more info, see GitHub issue #8996.
  • Fixed an issue with Islands where focus could be unexpectedly grabbed from another control.
  • Fixed an issue with tab order on NavigationView.
  • Fixed a rendering issue where a white bar might be visible at the top of the titlebar. For more info, see GitHub issue #8947.
  • Various performance fixes.

New in Windows App SDK 1.4.2 (Oct 12, 2023)

  • This is a servicing release of the Windows App SDK that includes critical bug fixes for the 1.4 release:
  • Fixed a crashing issue in explorer.exe caused by excessive memory and object allocation.
  • Fixed a titlebar interaction issue that prevented the back button from working properly.
  • Fixed an issue that caused a warning to be generated for a source file being included multiple times.
  • Fixed an issue impacting context menu performance.
  • Fixed a .lnk shortcut issue that made the target .exe always point to the same location for packages in the WindowsApps folder.
  • Fixed a DWriteCore issue affecting proper rendering of Indic text in certain fonts.
  • Fixed an issue in a List View that prevented proper keyboard navigation to and from nested selected items with Tab/Shift + Tab.
  • Fixed an issue that broke scrolling ComboBox items by touch after expanding the ComboBox a second time. For more info, see GitHub issue #8831.
  • Fixed an issue where WinAppSDK packages did not include WinUI's localized resources for some languages.
  • Fixed an inconsistency between how File Explorer and XAML display a user's preferred language.
  • Fixed a craftsmanship issue in File Explorer causing a thin line to show under the active tab.
  • Fixed an issue where some framework-provided keyboard accelerators were not properly localized. For more info, see GitHub issue #2023.
  • Fixed an issue with RepeatButton controls that were repeatedly scrolling when tapped.
  • Fixed the WinAppSDK installer .exe to have proper resource version info.

New in Windows App SDK 1.4.1 (Sep 20, 2023)

  • This is a servicing release of the Windows App SDK that includes critical bug fixes for the 1.4 release:
  • Fixed performance issues to improve the time to first frame.
  • Fixed an issue where menus didn't respect RequestedTheme. For example, it was possible for this issue to lead to white text on a white background. For more info, see GitHub issue #8756.
  • Fixed an issue that caused acrylic backgrounds to sometimes become fully transparent in some menus.
  • Fixed an issue where XAML sometimes caused Windows to unnecessarily repaint the desktop wallpaper.
  • Fixed support for TabNavigation = Local and TabNavigation = Cycle for ListView and GridView, which now enables navigating between headers and items with TAB in addition to arrow keys.
  • Fixed some noisy exceptions when dismissing a tooltip. For more info, see GitHub issue #8699.

New in Windows App SDK 1.4.0 (Aug 31, 2023)

  • Widgets updates:
  • Three new interfaces have been added for Widget Providers to implement: IWidgetProvider2, IWidgetProviderAnalytics, and IWidgetProviderErrors. IWidgetProvider2 allows providers to respond to the Customize action invoked by the user, which is identical to what is available for 1st party Widgets. The IWidgetProviderAnalytics and IWidgetProviderErrors interfaces are used by providers to gather telemetry for their widgets; analytics and failure events about widgets are communicated to the respective widget providers. The WidgetCustomizationRequestedArgs, WidgetAnalyticsInfoReportedArgs, and WidgetErrorInfoReportedArgs classes are used to communicate relevant information to support new functionalities.
  • XAML Islands no longer experimental:
  • XAML Islands and the underlying ContentIslands platform are no longer experimental.
  • Currently XAML Islands are only tested for use in C++ apps. This release does not include any convenient wrapper elements for use in WPF or WinForms.
  • DesktopWindowXamlSource and related types have been added in the Microsoft.UI.Xaml.Hosting namespace for XAML Islands. XamlRoot.ContentIslandEnvironment was added to help access the underlying Island information for an element.
  • Many new types have been introduced in the Microsoft.UI.Content namespace and the Microsoft.UI.Input namespace as the underlying support for XAML Islands or for using this ContentIslands functionality without XAML.
  • A new DragDropManager (plus related types) has been added in the Microsoft.UI.Input.DragDrop namespace for Island scenarios.
  • ItemsView:
  • We're introducing a new list control called the ItemsView and a corresponding concrete ItemContainer class. ItemContainer is a lightweight container with built-in selection states and visuals, which can easily wrap desired content and be used with ItemsView for a collection control scenario.
  • The new ItemsView control displays a data collection. ItemsView is similar to the ListView and GridView controls, but is built using the ItemsRepeater, ScrollView, ItemContainer and ItemCollectionTransitionProvider components. It offers the unique ability to plug in custom Layout or ItemCollectionTransitionProvider implementations. Another key advantage is the ability to switch the layout on the fly while preserving items selection. The inner ScrollView control also offers features unavailable in ListView/GridView's ScrollViewer control such as the ability to control the animation during programmatic scrolls.
  • A new ItemTransitionProvider property on ItemsRepeater (and the new ItemsView control) lets you specify an ItemCollectionTransitionProvider object to control transition animations on that control. A CreateDefaultItemTransitionProvider method has also been added to Layout, which enables a layout object to provide a fallback transition to accompany it if you do not provide one explicitly on the ItemsView control.
  • A new IndexBasedLayoutOrientation property on Layout where the layout orientation, if any, of items is based on their index in the source collection. The default value is IndexBasedLayoutOrientation.None. Custom layouts set this property by calling the new (protected) SetIndexBasedLayoutOrientation method.
  • A new VisibleRect property on VirtualizingLayoutContext gets the visible viewport rectangle within the FrameworkElement associated with the Layout. The protected virtual VirtualizingLayoutContext.VisibleRectCore method can be overridden to provide the value that will be returned from the VisibleRect property.
  • The new LinedFlowLayout class is typically used to lay out the items of the ItemsView collection control. It is particularly useful for displaying collection of pictures. It does so by laying them out from left to right, and top to bottom, in lines of equal height. The pictures fill a horizontal line and then wrap to a next line. Pictures may be cropped at the left and right edges to fit into a line. They may also be expanded horizontally and cropped at the top and bottom edges to fill a line when the stretching mode is employed.
  • New features from across the WinAppSDK:
  • A new ThemeSettings class that allows Win32 WinRT apps to detect when the system's High Contrast setting has changed, similar to UWP's AccessibilitySettings class. See the ThemeSettings API spec on GitHub for more information.
  • AccessKeyManager.EnterDisplayMode is a new method to display access keys for the current focused element of a provided root. Access keys are in "display mode" when showing a key tip to invoke a command, such as pressing the Alt key in Paint to show what keys correspond to what controls. This method allows for programmatically entering display mode.
  • Application.ResourceManagerRequested provides a mechanism to provide a different IResourceManager to resolve resource URIs for scenarios when the default ResourceManager won't work. For more information, see the Application.ResourceManagerRequested API spec on GitHub.
  • The version of the WebView2 SDK was updated from 1661.34 to 1823.32.
  • Popup/FlyoutBase.IsConstrainedToRootBounds = false is now supported, allowing a popup/flyout to extend outside the bounds of the parent window. A SystemBackdrop property has been added to these types to support having acrylic in these unconstrained popups. Menus by default use this to have acrylic.
  • Closed, FrameworkClosed, and IsClosed have been added to DesktopAcrylicController and MicaController to improve handling during object/thread shutdown.
  • DesktopAcrylicController.Kind can now be set to choose between some standard acrylic appearances.
  • DispatcherQueue has some new events and helpers to facilitate better organized shutdown and for apps using Islands to easily run a standard supported event loop.
  • InputNonClientPointerSource in the Microsoft.UI.Input namespace can be used for custom titlebar scenarios to define non-client area regions. Code can register for corresponding events like hover and click events on these regions.
  • AppWindow has some new helpers to get and associate with a DispatcherQueue.
  • The new TreeView.SelectionChanged event allows developers to respond when the user or code-behind changes the set of selected nodes in the TreeView control.
  • The new ScrollView control provides a new alternative to ScrollViewer. This new control is highly aligned in behavior and API with the existing ScrollViewer control, but is based on InteractionTracker, has new features such as animation-driven view changes, and is also designed to ensure full functionality of ItemsRepeater. See A more flexible ScrollViewer · Issue #108 · microsoft/microsoft-ui-xaml (github.com) for more details. Various new types, including ScrollPresenter, are part of the overall ScrollView model.
  • The new AnnotatedScrollBar control extends a regular scrollbar's functionality by providing an easy way to navigate through a large collection of items. This is achieved through a clickable rail with labels that act as markers. It also allows for a more granular understanding of the scrollable content by displaying a tooltip when hovering over the clickable rail.

New in Windows App SDK 1.4 Preview 2 (Aug 17, 2023)

  • XAML Islands no longer experimental:
  • XAML Islands and the underlying ContentIslands platform are no longer experimental.
  • Currently XAML Islands are only tested for use in C++ apps. This release does not include any convenient wrapper elements for use in WPF or WinForms.
  • DesktopWindowXamlSource and related types have been added in the Microsoft.UI.Xaml.Hosting namespace for XAML Islands. XamlRoot.ContentIslandEnvironment was added to help access the underlying Island information for an element.
  • Many new types have been introduced in the Microsoft.UI.Content namespace and the Microsoft.UI.Input namespace as the underlying support for XAML Islands or for using this ContentIslands functionality without XAML.
  • A new DragDropManager (plus related types) has been added in the Microsoft.UI.Input.DragDrop namespace for Island scenarios.
  • ItemsView updates:
  • The new ItemsView class that was introduced in version 1.4-preview1 has been substantially updated with new properties and a new supporting class.
  • The new ItemsView control displays a data collection. ItemsView is similar to the ListView and GridView controls, but is built using the ItemsRepeater, ScrollView, ItemContainer and ItemCollectionTransitionProvider components. It offers the unique ability to plug in custom Layout or ItemCollectionTransitionProvider implementations. Another key advantage is the ability to switch the layout on the fly while preserving items selection. The inner ScrollView control also offers features unavailable in ListView/GridView's ScrollViewer control such as the ability to control the animation during programmatic scrolls.
  • A new ItemTransitionProvider property on ItemsRepeater (and the new ItemsView control) lets you specify an ItemCollectionTransitionProvider object to control transition animations on that control. A CreateDefaultItemTransitionProvider method has also been added to Layout, which enables a layout object to provide a fallback transition to accompany it if you do not provide one explicitly on the ItemsView control.
  • A new IndexBasedLayoutOrientation property on Layout where the layout orientation, if any, of items is based on their index in the source collection. The default value is IndexBasedLayoutOrientation.None. Custom layouts set this property by calling the new (protected) SetIndexBasedLayoutOrientation method.
  • A new VisibleRect property on VirtualizingLayoutContext gets the visible viewport rectangle within the FrameworkElement associated with the Layout. The protected virtual VirtualizingLayoutContext.VisibleRectCore method can be overridden to provide the value that will be returned from the VisibleRect property.
  • The new LinedFlowLayout class is typically used to lay out the items of the ItemsView collection control. It is particularly useful for displaying collection of pictures. It does so by laying them out from left to right, and top to bottom, in lines of equal height. The pictures fill a horizontal line and then wrap to a next line. Pictures may be cropped at the left and right edges to fit into a line. They may also be expanded horizontally and cropped at the top and bottom edges to fill a line when the stretching mode is employed.
  • New features and updates from across the WinAppSDK:
  • Popup/FlyoutBase.IsConstrainedToRootBounds = false is now supported, allowing a popup/flyout to extend outside the bounds of the parent window. A SystemBackdrop property has been added to these types to support having acrylic in these unconstrained popups. Menus by default use this to have acrylic.
  • Closed, FrameworkClosed, and IsClosed have been added to DesktopAcrylicController and MicaController to improve handling during object/thread shutdown.
  • DesktopAcrylicController.Kind can now be set to choose between some standard acrylic appearances.
  • DispatcherQueue has some new events and helpers to facilitate better organized shutdown and for apps using Islands to easily run a standard supported event loop.
  • InputNonClientPointerSource in the Microsoft.UI.Input namespace can be used for custom titlebar scenarios to define non-client area regions. Code can register for corresponding events like hover and click events on these regions.
  • AppWindow has some new helpers to get and associate with a DispatcherQueue.
  • The new TreeView.SelectionChanged event allows developers to respond when the user or code-behind changes the set of selected nodes in the TreeView control.
  • The new ScrollView control provides a new alternative to ScrollViewer. This new control is highly aligned in behavior and API with the existing ScrollViewer control, but is based on InteractionTracker, has new features such as animation-driven view changes, and is also designed to ensure full functionality of ItemsRepeater. See A more flexible ScrollViewer · Issue #108 · microsoft/microsoft-ui-xaml (github.com) for more details. Various new types, including ScrollPresenter, are part of the overall ScrollView model.
  • The new AnnotatedScrollBar control extends a regular scrollbar's functionality by providing an easy way to navigate through a large collection of items. This is achieved through a clickable rail with labels that act as markers. It also allows for a more granular understanding of the scrollable content by displaying a tooltip when hovering over the clickable rail.

New in Windows App SDK 1.3.3 (Jul 28, 2023)

  • This is a servicing release of the Windows App SDK that includes critical bug fixes for the 1.3 release.
  • Fixed an issue where the mouse would sometimes stop working when a dialog box was closed.
  • Fixed a deployment issue that prevented apps from installing due to a mismatch of package versions on the system. For more information, see GitHub issue #3740.
  • Fixed an issue affecting context menu positioning in Windows App SDK 1.3.
  • Fixed an issue causing some WinUI3 apps, in some situations, to crash when the app was closed because XAML shut itself down too early.
  • Fixed an issue where font icons were not mirroring properly in right-to-left languages. For more information, see GitHub issue #7661.
  • Fixed an issue causing an app to crash on shutdown when resources were torn down in a bad order. For more information, see GitHub issue #7924.

New in Windows App SDK 1.4 Preview 1 (Jul 15, 2023)

  • Version 1.4-preview1 includes the following new APIs compared to the stable 1.3 release:
  • Microsoft.UI.System
  • ThemeSettings
  • Microsoft.UI.Xaml
  • Application
  • ResourceManagerRequested
  • ResourceManagerRequestedEventArgs
  • Microsoft.UI.Xaml.Automation.Peers
  • ItemContainerAutomationPeer
  • Microsoft.UI.Xaml.Controls
  • ItemContainer
  • Microsoft.UI.Xaml.Controls.Primitives
  • CommandBarFlyoutCommandBar
  • SystemBackdrop
  • SystemBackdropProperty
  • Microsoft.UI.Xaml.Input
  • AccessKeyManager
  • EnterDisplayMode
  • Microsoft.Web.WebView2.Core
  • CoreWebView2
  • LaunchingExternalUriScheme
  • MemoryUsageTargetLevel
  • CoreWebView2File
  • CoreWebView2LaunchingExternalUriSchemeEventArgs
  • CoreWebView2MemoryUsageTargetLevel
  • CoreWebView2PermissionKind
  • WindowManagement
  • CoreWebView2Profile
  • CookieManager
  • IsGeneralAutofillEnabled
  • IsPasswordAutosaveEnabled
  • CoreWebView2Settings
  • IsReputationCheckingRequired
  • CoreWebView2WebMessageReceivedEventArgs
  • AdditionalObjects
  • Microsoft.Windows.Widgets.Providers
  • IWidgetProvider2
  • IWidgetProviderAnalytics
  • IWidgetProviderErrors
  • WidgetAnalyticsInfoReportedArgs
  • WidgetCustomizationRequestedArgs
  • WidgetErrorInfoReportedArgs

New in Windows App SDK 1.3.2 (Jun 15, 2023)

  • This is a servicing release of the Windows App SDK that includes critical bug fixes for the 1.3 release.
  • Fixed a crash when setting a Protected Cursor.
  • Fixed a performance issue in XamlMetadataProvider during app startup. For more information, see GitHub issue #8281.
  • Fixed an issue with hyperlinks and touch in a RichTextBlock. For more information, see GitHub issue #6513.
  • Fixed an issue with scrolling and touchpads in WebView2. For more information, see GitHub issue #7772.
  • Fixed an issue where an update of Windows App SDK sometimes required a restart of Visual Studio. For more information, see GitHub issue #3554.
  • Fixed a noisy exception on shutdown when running in a debugger.

New in Windows App SDK 1.3.1 (May 10, 2023)

  • Fixed issue causing apps to crash when setting the SystemBackdrop if the Content was null. For more information, see GitHub issue #8416.
  • Fixed issue causing apps to crash when setting the Window Title in XAML, a new capability added in 1.3.0. For more information, see GitHub issue #3689.
  • Fixed issue where a window incorrectly took focus when its content changed.
  • Fixed an issue with creating C++ projects with the WinAppSDK 1.3 project templates.
  • Updated templates on Visual Studio Marketplace

New in Windows App SDK 1.3.0 (Apr 12, 2023)

  • The following sections describe new and updated features and known issues for 1.3 Stable.
  • In an existing Windows App SDK 1.2 Stable app, you can update your Nuget package to 1.3.230320000 (see the Update a package section in Install and manage packages in Visual Studio using the NuGet Package Manager).
  • For the updated runtime and MSIX, see Downloads for the Windows App SDK.
  • XAML Backdrop APIs:
  • With properties built in to the XAML Window, Mica & Background Acrylic backdrops are now easier to use in your WinUI 3 app. See the System Backdrop and Mica Backdrop API docs for more information about the Xaml Backdrop properties.
  • public MainWindow()
  • this.InitializeComponent();
  • this.SystemBackdrop = new MicaBackdrop();
  • Window.AppWindow
  • Replacing several lines of boilerplate code, you're now able to use AppWindow APIs directly from an Window through Window.AppWindow.
  • New features from across WinAppSDK:
  • ApplicationModel.DynamicDependency: PackageDependency.PackageGraphRevisionId that replaces the deprecated MddGetGenerationId.
  • Environment Manager: EnvironmentManager.AreChangesTracked to inform you whether changes to the environment manager are able to be tracked in your application.
  • MRT Core: A new event, Application.ResourceManagerInitializing allows your app to provide its own implementation of the IResourceManager interface, and gives you access to the ResourceManager that WinUI uses to resolve resource URIs. See the IResourceManager API spec on GitHub for more information.
  • Other updates:
  • See our WinAppSDK 1.3 milestone on the WinAppSDK GitHub for additional issues addressed in this release.
  • See our WinUI 3 in WinAppSDK 1.3 milestone on the microsoft-ui-xaml GitHub for additional issues addressed in this release.
  • With the latest experimental VSIX, you're now able to convert your app between unpackaged and packaged through the Visual Studio menu instead of in your project file.

New in Windows App SDK 1.2.5 (Mar 15, 2023)

  • This is a servicing release of the Windows App SDK that includes critical bug fixes for the 1.2 release:
  • Fixed issue causing apps to crash during Composition shutdown.
  • Fixed issue causing apps to continue running animations even when the screen is off.
  • Fixed issue causing mouse and touch input to fail in WebView2 when mouse and keyboard input occurred simultaneously. For more information, see GitHub issue #3266.

New in Windows App SDK 1.3 Preview 1 (Mar 8, 2023)

  • XAML Backdrop APIs:
  • With properties built in to the XAML Window, Mica & Background Acrylic backdrops are now easier to use in your WinUI 3 app. See the Xaml Backdrop API spec on GitHub for more information about the Window.SystemBackdrop property.
  • Of note in this release, you're able to set the backdrop only in code-behind, as below. Setting <Window.SystemBackdrop> in markup results in a compile error. Additionally, the Xaml Backdrop APIs are currently missing an 'experimental' tag as they are under active development.
  • Window.AppWindow:
  • Replacing several lines of boilerplate code, you're now able to use AppWindow APIs directly from an Window through Window.AppWindow. See the Window.AppWindow API spec on GitHub for additional background and usage information.
  • New features from across WinAppSDK
  • ApplicationModel.DynamicDependency: PackageDependency.PackageGraphRevisionId that replaces the deprecated MddGetGenerationId.
  • Environment Manager: EnvironmentManager.AreChangesTracked to inform you whether changes to the environment manager are able to be tracked in your application. See the Environment Manager API spec on GitHub for more information.
  • MRT Core: A new event, Application.ResourceManagerInitializing allows your app to provide its own implementation of the IResourceManager interface, and gives you access to the ResourceManager that WinUI uses to resolve resource URIs.
  • With the latest experimental VSIX, you're now able to convert your app between unpackaged and packaged through the Visual Studio menu instead of in your project file.
  • A new event, DebugSettings.XamlResourceReferenceFailed is now raised when a referenced Static/ThemeResource lookup can't be resolved. This event gives access to a trace that details where the framework searched for that key in order to better enable you to debug Static & ThemeResource lookup failures. For more information, see issues 4972, 2350, and 6073 on GitHub.
  • Bug fixes:
  • Fixed issues with touch input causing the soft keyboard to not appear on text boxes. For more information, see issue 6291 on GitHub.
  • Fixed issue causing an ItemsRepeater with an IElementFactory as its ItemTemplate to throw an ArgumentException. For more info, see issue 4705 on GitHub.
  • Additional Experimental APIs:
  • This release also includes several APIs that are in early development.
  • The list below details the APIs introduced in this experimental release that we don't plan to ship in the 1.3.0 stable release.

New in Windows App SDK 1.2.4 (Feb 24, 2023)

  • This is a servicing release of the Windows App SDK that includes critical bug fixes for the 1.2 release.
  • Fixed issue causing self-contained apps to not be able to set UAC Settings. For more information, see GitHub issue #3376.
  • Fixed issue causing push notifications to return an inaccurate Expiration time with PushNotificationChannel::ExpirationTime. For more information, see GitHub issue #3300.
  • Fixed issue causing negative numbers to be considered "invalid" when passing a double as a parameter into an x:Bind function.
  • Several fixes to update the WinUI VSIX. These updates included simplifying the project template dipAwareness in app.manifest, removing the UWP templates, updating localized resource files, adding the phone id to unblock store submission, and removing the copyright notice and license. For more info see GitHub issues #5659, #3205, #3323, #3322, #3143.

New in Windows App SDK 1.3.0 Experimental (Feb 7, 2023)

  • XAML Backdrop APIs:
  • With properties built in to the XAML Window, Mica & Background Acrylic backdrops are now easier to use in your WinUI 3 app. See the Xaml Backdrop API spec on GitHub for more information about the Window.SystemBackdrop property.
  • Of note in this release, you're able to set the backdrop only in code-behind, as below. Setting <Window.SystemBackdrop> in markup results in a compile error. Additionally, the Xaml Backdrop APIs are currently missing an 'experimental' tag as they are under active development.
  • AppWindow.Window:
  • Replacing several lines of boilerplate code, you're now able to use Window APIs directly from an AppWindow through AppWindow.Window. See the AppWindow.Window API spec on GitHub for additional background and usage information.
  • New features from across WinAppSDK:
  • ApplicationModel.DynamicDependency: PackageDependency.PackageGraphRevisionId that replaces the deprecated MddGetGenerationId.
  • Environment Manager: EnvironmentManager.AreChangesTracked to inform you whether changes to the environment manager are able to be tracked in your application. See the Environment Manager API spec on GitHub for more information.
  • MRT Core: A new event, Application.ResourceManagerInitializing allows your app to provide its own implementation of the IResourceManager interface, and gives you access to the ResourceManager that WinUI uses to resolve resource URIs.
  • With the latest experimental VSIX, you're now able to convert your app between unpackaged and packaged through the Visual Studio menu instead of in your project file.
  • A new event, DebugSettings.XamlResourceReferenceFailed is now raised when a referenced Static/ThemeResource lookup can't be resolved. This event gives access to a trace that details where the framework searched for that key in order to better enable you to debug Static & ThemeResource lookup failures. For more information, see issues 4972, 2350, and 6073 on GitHub.
  • Bug fixes:
  • Fixed issues with touch input causing the soft keyboard to not appear on text boxes. For more information, see issue 6291 on GitHub.
  • Fixed issue causing an ItemsRepeater with an IElementFactory as its ItemTemplate to throw an ArgumentException. For more info, see issue 4705 on GitHub.
  • Additional Experimental APIs:
  • This release also includes several APIs that are in early development.
  • The list below details the APIs introduced in this experimental release that we don't plan to ship in the 1.3.0 stable release.

New in Windows App SDK 1.2.3 (Jan 26, 2023)

  • This is a servicing release of the Windows App SDK that includes critical bug fixes for the 1.2 release.
  • Fixed issue causing WinUI 3 apps to crash when multiple windows are closed.
  • Fixed issue causing a crash on app close when two or more references to the ThreadPoolTimer interface are called. For more information, see GitHub issues #7260 and #7239.
  • Fixed issue causing all Single-project MSIX apps to run as full trust. For more information, see GitHub issue #7766.

New in Windows App SDK 1.2.2 (Dec 15, 2022)

  • This is a servicing release of the Windows App SDK that includes critical bug fixes for the 1.2 release.
  • Fixed issue that caused the Store and side-load packages (e.g. from installer, NuGet, and bootstrapper) to fail to install if the other is already installed. For more information, see GitHub issue #3168.
  • Fixed issue causing missing elasticity effects and animation curves when scrolling with a touchpad. For more information, see GitHub issue #7874.
  • Fixed issue in ListView causing memory leaks.
  • Fixed issue causing the Button template to not respect the Foreground property after mouse hover. For more information, see GitHub issue #7208.
  • Fixed issue causing an unneeded exception when there is no MediaPlaybackItem in a MediaElement.
  • Fixed issue causing a white frame to appear in MediaPlayerElement on content transitions.
  • Fixed additional issues causing App.UnhandledException to not catch exceptions from other threads. For more information, see GitHub issues #1259 and #5221.

New in Windows App SDK 1.2.0 (Nov 19, 2022)

  • Third-party Widgets in Windows:
  • The widgets board was first introduced in Windows 11 and was limited to displaying built-in widgets Widgets are small UI containers that display text and graphics on the widgets board, and are associated with an app installed on the device With Windows App SDK, as third party developers you can now create widgets for your packaged Win32 apps and test them locally on the Windows 11 widgets board
  • For more information about widgets, check out Widgets Overview
  • To get started developing widgets for your app, check out the Widget service providers development docs and Widgets design fundamentals for prerequisites, guidance and best practices
  • Prerequisites for this release include:
  • Developer mode enabled on the development machine
  • The development machine is running a version of Windows from the Dev Channel of Windows Insider Preview (WIP) that is greater than or equal to 25217 with widgets board version 5212006012050 or above
  • Known limitations when developing Widgets:
  • Third-party Widgets can only be tested locally on devices enrolled in WIP for this preview release
  • Widgets can only be created for packaged, Win32 apps Widgets for Progressive Web Apps (PWA) are planned to be supported as part of Microsoft Edge 108
  • DisplayInformation:
  • Windows desktop apps can now support High Dynamic Range (HDR) and Auto Color Management (ACM) through the DisplayInformation class in WinAppSDK The DisplayInformation class enables you to monitor display-related information for an application view This includes events to allow clients to monitor for changes in the application view affecting which display(s) the view resides on, as well as changes in displays that can affect the application view
  • WinUI 3:
  • WinUI 3 apps can play audio and video with the MediaPlayerElement and MediaTransportControls media playback controls For more info on how and when to use media controls, see Media players
  • WinUI 3 has been updated with the latest controls, styles, and behaviors from WinUI 28 These updates include the addition of the InfoBadge control, improvements to accessibility and high contrast mode, as well as bug fixes across controls For more details, see the release notes for WinUI 27 and WinUI 28
  • Fixed issues:
  • Acrylic backdrop material with DesktopAcrylicController is now supported in Windows 10 apps For more information, check out issue 7112 on GitHub
  • Fixed various issues that caused routing of AppUnhandledException to fail For more information, check out issue 5221 on GitHub Regarding the remaining issues, workarounds are documented at the following GitHub issues and will be resolved in a future 12 release:
  • App_UnhandledException's UnhandledExceptionEventArgsException can only be fetched once - should be cached
  • Do_Abi_* event/callback handlers should wrap invocations with RoReportUnhandledError
  • Fixed issue causing ListView styles to regress and change from WinAppSDK 11 For more information, check out issue 7666 on GitHub
  • Fixed issue causing the incorrect Mica fallback background color to appear when the app is inactive For more information, check out issue 7801 on GitHub
  • Known limitations:
  • When creating a new WinUI 3 project with Visual Studio 2022 1740, it will reference a preview version of the WinAppSDK Use NuGet Package Manager to update the reference to this release
  • Setting MediaPlayerElementSource to relative URI (ms-appx/ms-resource) fails in unpackaged apps The recommended workaround is to convert the relative ms-appx:/// URI to a fully resolved file:/// URI
  • Trimming for apps developed with NET:
  • NET developers can now publish trimmed WinAppSDK apps With CsWinRT 20, the C#/WinRT projections distributed in WinAppSDK are now trimmable Publishing your app trimmed can reduce the disk footprint of your app by removing any unused code from trimmable binaries Apps may also see a startup performance improvement With a basic Hello World app, we have seen a ~80% disk footprint improvement and a ~7% startup performance improvement when published trimmed With WinUI gallery, we have seen a ~45% disk footprint improvement
  • For more details on how to enable trimming, trimming limitations (such as reflection against trimmable types), and trim warnings, see Trim self-contained deployments and executables Developers should thoroughly test their apps after trimming to ensure everything works as expected For more information, check out issue 2478 on GitHub
  • Support for Visual Studio Arm64
  • As early as Project Reunion (now WinAppSDK) 05, apps developed with WinAppSDK were able to run on Arm64 Starting with Visual Studio 173 Preview 2, you can develop native applications with WinAppSDK on Arm64 devices
  • To get started developing on an Arm64 device, see Windows on Arm and Arm64 Visual Studio
  • Notifications
  • AppNotificationBuilder introduced as an alternative to XML payload for creating and defining App Notifications
  • For usage information, see the AppNotificationBuilder spec on GitHub
  • Also see Quickstart: App notifications in the Windows App SDK for an example of how to create a desktop Windows application that sends and receives local app notifications
  • Breaking change:
  • For push notifications, when making a channel request call, apps will need to use the Azure Object ID instead of the Azure App ID See Quickstart: Push notification in the Windows App SDK for details on finding your Azure Object ID
  • Fixed issue:
  • PushNotificationManagerIsSupported will perform a check for elevated mode It will return false if the app is elevated
  • Known limitations (Notifications):
  • In AppNotificationScenario, Urgent is only supported for Windows builds 19041 and later You can use AppNotificationBuilderIsUrgentScenarioSupported to check whether the feature is available at runtime
  • In AppNotificationButton, hint-toolTip and hint-buttonStyle are only supported for builds 19041 and later You can use IsButtonStyleSupported and IsToolTipSupported to check whether the feature is available at runtime
  • In MediaPlayerElement, when used in XAML markup for an unpackaged app, the Source property cannot be set with an ms-appx or ms-resource URI As an alternative, set the Source using a file URI, or set from code
  • Windowing:
  • Full title bar customization is now available on Windows 10, version 1809 and later through the AppWindowTitleBar class You can set AppWindowTitleBarExtendsContentIntoTitleBar to true to extend content into the title bar area, and SetDragRectangles to define drag regions (in addition to other customization options)
  • If you've been using the AppWindowTitleBarIsCustomizationSupported property to check whether you can call the AppWindowTitleBar APIs, it now returns true on supported Windows App SDK Windows 10 versions (1809 and later)
  • Known limitations (Windowing):
  • Basic title bar customizations are not supported on Windows 10 These include BackgroundColor, InactiveBackgroundColor, ForegroundColor, InactiveForegroundColor and IconShowOptions If you call these properties, they will be ignored silently All other AppWindowTitleBar APIs work in Windows 10, version 1809 and later For the caption button color APIs (among others) and Height, ExtendsContentIntoTitleBar must be set to true, otherwise they will also be ignored silently
  • Access control:
  • Introduced securityaccesscontrolh with the GetSecurityDescriptorForAppContainerNames function to ease and streamline named object sharing between packaged processes and general Win32 APIs This method takes a list of Package Family Names (PFNs) and access masks, and returns a security descriptor For more information, see the GetSecurityDescriptorForAppContainerNames spec on GitHub

New in Windows App SDK 1.2.0 Experimental 2 (Sep 22, 2022)

  • Input & Composition:
  • First introduced in Windows App SDK 0.8, there are several experimental classes in the Microsoft.UI.Input.Experimental & Microsoft.UI.Composition.Experimental namespaces.
  • New to this release:
  • InputPointerSource has a new static factory, GetforWindowId.
  • Content:
  • New to this release, the experimental classes in the Microsoft.UI.Content namespace provide the building blocks of interactive content. These are low level primitives that can be assembled into content to provide the interactive experience for an end user. The content defines the structure for: rendering output with animations, processing input on different targets, providing accessibility representation, and handling host state changes.
  • Notable APIs:
  • ContentIsland - brings together Output, Input, and Accessibility and provides the abstraction for interactive content. A custom visual tree can be constructed and made interactive with these APIs.
  • DesktopChildSiteBridge - enables a ContentIsland to be connected into a HWND-based hierarchy.
  • Check out the sample on GitHub for more information.
  • Dispatching:
  • DispatcherQueue now dispatches as reentrant. Previously, no more than a single DispatcherQueueHandler callback could be active on a single thread at a time. Now, if a handler starts a nested message pump, additional callbacks dispatch as reentrant. This matches Win32 behavior around window messages and nested message pumps.
  • Notifications:
  • Registering app display name and icon for app notification is now supported. Check out the spec on GitHub for additional information.
  • WinUI 3:
  • Controls and styles are up to date with the WinUI 2.8 release.
  • UWP is no longer supported in the experimental releases.

New in Windows App SDK 1.1.5 (Sep 15, 2022)

  • Bug fixes:
  • Fixed issue where Acrylic does not work if Mica is enabled. For more information, see issue 7200 on GitHub.
  • Fixed issue causing apps that depend on the WindowsAppRuntime installer (e.g. unpackaged apps) to fail to run on Windows 10 ARM64 machines. For more information, see issue 2564 on GitHub.

New in Windows App SDK 1.2.0 Preview 1 (Sep 8, 2022)

  • Breaking change:
  • For push notifications, when making a channel request call, apps will need to use the Azure Object ID instead of the Azure App ID. See Quickstart: Push notification in the Windows App SDK for details on finding your Azure Object ID.
  • Fixed issue:
  • PushNotificationManager.IsSupported will perform a check for elevated mode. It will return false if the app is elevated.
  • Known limitations (Notifications):
  • In AppNotificationScenario, Urgent is only supported for Windows builds 19041 and later. You can use AppNotificationBuilder.IsUrgentScenarioSupported to check whether the feature is available at runtime.
  • In AppNotificationButton, hint-toolTip and hint-buttonStyle are only supported for builds 19041 and later. You can use IsButtonStyleSupported and IsToolTipSupported to check whether the feature is available at runtime.
  • In MediaPlayerElement, when used in XAML markup for an unpackaged app, the Source property cannot be set with an ms-appx or ms-resource URI. As an alternative, set the Source using a file URI, or set from code.
  • Windowing:
  • Full title bar customization is now available on Windows 10, version 1809 and later through the AppWindowTitleBar class. You can set AppWindowTitleBar.ExtendsContentIntoTitleBar to true to extend content into the title bar area, and SetDragRectangles to define drag regions (in addition to other customization options).
  • If you've been using the AppWindowTitleBar.IsCustomizationSupported property to check whether you can call the AppWindowTitleBar APIs, it now returns true on supported Windows App SDK Windows 10 versions (1809 and later).
  • Known limitations (Windowing):
  • Simple title bar customizations are not supported on Windows 10. These include BackgroundColor, InactiveBackgroundColor, ForegroundColor, InactiveForegroundColor and IconShowOptions. If you call these properties, they will be ignored silently. All other AppWindowTitleBar APIs work in Windows 10, version 1809 and later. For the caption button color APIs (among others) and Height, ExtendsContentIntoTitleBar must be set to true, otherwise they will also be ignored silently.
  • Access control:
  • GetSecurityDescriptorForAppContainerNames introduced to ease and streamline named object sharing between packaged processes and general Win32 APIs. This method takes a list of Package Family Names (PFNs) and access masks, and returns a security descriptor. For more information, see the GetSecurityDescriptorForAppContainerNames spec on GitHub.
  • Other limitations and known issues:
  • .NET PublishSingleFile isn't supported.

New in Windows App SDK 1.1.4 (Aug 12, 2022)

  • Bug fixes:
  • Fixed regression from 1.0.x causing ListView, TreeView, and other 'List' controls to crash when scrolling with many items. For more information, see issue 7230 on GitHub.
  • Fixed issue causing the splash screen to appear for several seconds due to the DispatcherQueue causing enqueued callbacks to no longer be invoked.
  • Fixed issue causing an app crash when calling DeploymentManager.Initialize multiple times in same app session.
  • Fixed issue causing C# apps to fail to build on Arm64 Visual Studio. For more information, see issue 7140 on GitHub.
  • Fixed intermittent crash in XAML imaging code due to incorrect failure handling.
  • Fixed memory leak issue when attaching an event handler in ItemsRepeater with a parent UserControl. For more information, see issue 6123 on GitHub.
  • Fixed issue causing a build failure in 17.3 when an app project is configured to enable automatic updates of its package when it's sideloaded (i.e. .appinstaller). For more information, see issue 2773.
  • Fixed issue causing Store-distributed packaged apps that call Initialize (necessary e.g. for Push) to call it redundantly as DeploymentManager::GetStatus returned Package Install Needed when main and singleton packages are already installed. This caused a perf degradation on app launch.
  • Fixed issue causing an exception in single instance apps when the cleanup event was intended to be ignored if it couldn't be opened. For more information, see the PR on GitHub.

New in Windows App SDK 1.1.3 (Jul 21, 2022)

  • Bug fixes:
  • Fixed related set of issues where XAML crashes when including a ProgressBar, ProgressRing, PipsPager, PersonPicture, or Expander control in the first page of your app. For more information see issue 7164 on GitHub.
  • Fixed issue causing the x64 installer to fail to install the Windows App SDK runtime. For more information see issue 2713 on GitHub.
  • Fixed issue causing the WindowsAppRuntime to fail to install if a higher version of the runtime is installed. For more information see discussion 2708 on GitHub.

New in Windows App SDK 1.1.2 (Jul 6, 2022)

  • Bug fixes:
  • Fixed issue where XAML crashes when closing a window while a dialog is open. For more information see issue 1032 on GitHub.
  • Added <auto-generated> tag in C# files to prevent StyleCop warnings. For more information see issue 4526 on GitHub.
  • Fixed issue causing an access violation error and crash when calling MddBootstrapInitialize when the matching framework package isn't installed. For more information see issue 2592 on GitHub.
  • Fixed issue where the C# WinUI 3 item templates were missing in Visual Studio. For more information see issue 7148 on GitHub.
  • Fixed issue where the WindowsAppRuntime installer fails when run as System user. For more information see issue 2546 on GitHub.

New in Windows App SDK 1.1.1 (Jun 15, 2022)

  • Bug fixes:
  • Fixed issue causing apps to sometimes crash during a drag and drop operation. For more information see issue 7002 on GitHub.
  • Fixed issue causing the title bar to disappear when switching AppWindowPresenterKind from FullScreen to Default.
  • Fixed issue where Bootstrapper APIs like ApiInformation.IsPropertyPresent and ApiInformation.IsMethodPresent would cause unhandled exceptions in apps without MSIX-packaging. For more information see issue 2382 on GitHub.
  • Fixed issue causing app freeze when maximizing application with pen input.

New in Windows App SDK 1.1.0 (Jun 4, 2022)

  • App Lifecycle & Restart:
  • Apps are now able to initiate an explicit restart with specific arguments & state building off of the existing RegisterApplicationRestart API to register with the OS to restart in update, hang & reboot scenarios.
  • New features:
  • Any packaged or unpackaged desktop app can terminate and restart itself on command, and have access to an arbitrary command-line string for the restarted instance using the AppInstance.Restart() API.
  • This is a lifted and synchronous version of the UWP RequestRestartAsync() API which enables restarting with arguments and returns an AppRestartFailureReason if the restart is unsuccessful.
  • Check out the Restart API docs on GitHub for usage & reference information.
  • WinUI 3:
  • WinUI 3 is the native user experience (UX) framework for Windows App SDK. This release includes new features from WinAppSDK 1.0 as well as several stability improvements from 1.0 & 1.1 preview releases.
  • New features:
  • Mica and Background Acrylic are now available for WinUI 3 applications.
  • For more information about these materials, check out Materials in Windows 11. Check out our sample code for applying Mica in C++ applications at Using a SystemBackdropController with WinUI 3 XAML and in C# applications on GitHub as part of the WinUI 3 Gallery.
  • First introduced in 1.0.1, we have stabilized and enabled the creation of multiple windows on the same thread in WinUI 3 applications. See issue 5918 for more information.
  • Fixed bugs:
  • Fixed issue when using Mica where the app would crash when a window is divided equally by two screens. See issue 7079 on GitHub for more info.
  • Fixed issue causing C# apps with WebView2 to crash on launch when the C/C++ Runtime (CRT) isn't installed by upgrading the WebView2 SDK from 1020.46 to 1185.39.
  • Fixed issue causing some rounded corners to show a gradient when they should be a solid color. For more information see issue 6076 & issue 6194 on GitHub.
  • Fixed issue where updated styles were missing from generic.xaml.
  • Fixed layout cycle issue causing an app to crash when scrolling to the end of a ListView. For more information see issue 6218 on GitHub.
  • Fixed issue where users are unable to drop an element when drag-and-drop is enabled. For more information see issue 7008 on GitHub.
  • Deployment:
  • New features:
  • MSIX-packaged apps can now force deploy the Windows App SDK runtime packages using the DeploymentManager.Initialize(DeploymentInitializeOptions) API or using the --force option with the Windows App Runtime installer.
  • There are additional functional extension categories, UnlockedDEHs, available for MSIX-packaged apps. Check out the 1.1 Preview 3 release notes for more details. These require the Windows App SDK framework package to be installed. See Downloads for the Windows App SDK to install the runtime.
  • Self-contained deployment is supported. Check out the Windows App SDK deployment overview for the differences between framework-dependent and self-contained deployment, and how to get started.
  • The Bootstrapper API required for apps that don't deploy with MSIX include new options for improved usability and troubleshooting. Please view our documentation for C# apps, Bootstrapper C# APIs and for C++ apps, mddbootstrapheader.h header. For more details, see Reference the Windows App SDK framework package at run time.
  • Elevation:
  • Apps are now able to run with elevated privilege.
  • Known limitations:
  • Elevated support requires the following OS servicing update:
  • Win11 - May 10, 2022—KB5013943 (OS Build 22000.675)
  • Win10 - May 10, 2022—KB5013942 (OS Builds 19042.1706, 19043.1706, and 19044.1706)
  • App and Push Notifications for an elevated unpackaged app is not supported.
  • Elevated WinUI 3 apps crash when dragging an element during a drag-and-drop interaction.
  • Environment Variable Manager:
  • Environment Variable Manager is a new API introduced in Windows App SDK 1.1. Environment Variable Manager allows developers to access, and modify environment variables in the process, user, and machine scope from one API surface.
  • If Environment Variable Manager is used from a packaged application, all environment variable operations are recorded. When the package is removed all environment variable operations are reverted.
  • New features:
  • Get and set environment variables in the process, user, and machine scope.
  • Automatic environment variable revert when a package that uses environment variable manager is removed.
  • Includes specific APIs for PATH and PATHEXT.
  • MRT Core:
  • MRT Core is a streamlined version of the modern Windows Resource Management System that is distributed as part of the Windows App SDK.
  • Fixed issues:
  • An issue causing resources not to be indexed by default when a resource file is added using the VS UI is fixed in .NET SDK 6.0.300. If using an older .NET SDK version, please continue to use the workaround documented in 1.0 Stable's release notes. See issue 1786 on GitHub for additional information.
  • An issue causing the resource URI to not be built correctly in unpackaged C++ WinUI 3 apps was fixed in Visual Studio 2022 17.2. If using an older Visual Studio version, please update Visual Studio to 17.2 to receive this fix.
  • Notifications:
  • Developers of MSIX-packaged, sparse-packaged, and unpackaged apps can now send Windows notifications.
  • New features:
  • Support for app notifications for packaged and unpackaged apps.
  • Developers can send app notifications, also known as toast notifications, locally or from their own cloud service. See App notifications overview.
  • Support for push notifications for packaged and unpackaged apps.
  • Developers can send raw notifications and app notifications from their own cloud service. See Push notifications overview.
  • Windowing:
  • For easier programming access to functionality that's implemented in USER32.dll (see Windows and messages), this release surfaces more of that functionality in AppWindow itself.
  • New features:
  • Apps with existing windows have more control over how a window is shown, by calling AppWindow.ShowOnceWithRequestedStartupState—the equivalent of ShowWindow(SW_SHOWDEFAULT).
  • Apps can show, minimize, or restore a window while specifying whether the window should be activated or not at the time the call is made.
  • Apps can now determine specific dimensions for their window's client area size in Win32 coordinates without needing to calculate the non-client area sizing to get a specific client area size.
  • Additional WinRT APIs are available to support z-order management of windows based off of SetWindowPos’s hWndInsertAfter functionality.
  • Apps drawing custom title bars with AppWindowTitleBar.ExtendsContentIntoTitleBar can set a PreferredTitleBarHeight option. You now have a choice between a standard height title bar, or a tall title bar that provides more room for interactive content. See Title bar in the Fluent design guidelines for advice about when to use a tall title bar.
  • Fixed issues:
  • When full screen presenter is invoked the first time, the window now fits on the entire screen correctly. See issue 1853 on GitHub for more info.
  • Windows created with AppWindow::GetFromWindowId have the OverlappedPresenter as the default presenter but does not have restrictions in terms of changes to window styles coming from other APIs. Windows created with AppWindow::Create will have the default Presenter guardrails in place from the start. See issue 2049 on GitHub for more info.
  • Using the OverlappedPresenter.SetBorderAndTitlebar API to hide caption buttons and borders would result in a 1px top border when maximized. This has been resolved. See issue 1693 on GitHub for more info.
  • C#/WinRT:
  • C# Windows Runtime Components, including WinUI custom controls, are now supported. This enables component authors to distribute C#-authored runtime components to any WinRT compatible language (e.g., C++/WinRT). See Walkthrough—Create a C# component with WinUI 3 controls, and consume it from a C++/WinRT app that uses the Windows App SDK and the sample on GitHub to get started.

New in Windows App SDK 1.1.0 Preview 3 (May 4, 2022)

  • Notifications:
  • Fixed issues:
  • In 1.1.0-preview1 and 1.1.0-preview2, some unpackaged apps will have seen their app icons incorrectly copied to AppDataLocalMicrosoftWindowsAppSDK. For this release, they will be copied to AppDataLocalMicrosoftWindowsAppSDK instead. To avoid leaking icons, you should manually delete the app icon at the incorrect path after updating to 1.1.0-preview3.
  • App icon and app display name retrieval for app notifications via Shortcuts is now supported. This app icon will be prioritized over any icon specified in resource files.
  • Support for push notifications for unpackaged apps has been restored (see Limitations for noted exception). We've introduced the PushNotificationManager::IsSupported API to check if your app supports push notifications.
  • Limitations:
  • Notifications for an elevated unpackaged app is not supported. PushNotificationManager::IsSupported will not perform a check for elevated mode. However, we are working on supporting this in a future release.
  • MSIX packaging:
  • We've enhanced MSIX adding new and extending existing functionality via the extension categories:
  • windows.appExecutionAlias
  • windows.customDesktopEventLog
  • windows.dataShortcuts
  • windows.fileTypeAssociation
  • windows.fileTypeAssociation.iconHandler
  • windows.folder
  • windows.shortcut
  • These require the Windows App SDK framework package to be installed. See Downloads for the Windows App SDK to install the runtime.
  • Environment manager:
  • API set that allows developers to add, remove, and modify environment variables without having to directly use the registry API.
  • Clarification from 1.1 Preview 1: Automatic removal of any environment variable changes when an app that used environment manager is uninstalled is only available for packaged apps. Additionally, reverting environment variable changes requires installation of the Windows App SDK framework package, see Downloads for the Windows App SDK for the runtime.
  • Other known limitations:
  • Regressions from 1.1 Preview 2:
  • For .NET apps using MRT Core APIs and WinUI apps that don't deploy with single-project MSIX:
  • RESW and image files that were added to the project as Existing Items and previously automatically included to the PRIResource and Content ItemGroups, respectively, won't be included in those ItemGroups. As a result, these resources won't be indexed during PRI generation, so they won't be available during runtime.
  • Workaround: Manually include the resources in the project file and remove them from the None ItemGroup.
  • Alternative workaround: When available, upgrade your apps' .NET SDK to 6.0.300. See Version requirements for .NET SDK for additional information.
  • For .NET apps that don't deploy with single-project MSIX:
  • If a file is added to the Content ItemGroup twice or more, then there will be a build error.
  • Workaround: Delete the duplicate inclusion/s or set EnableDefaultContentItems to false in the project file.
  • Both regressions will be restored in the next stable release.

New in Windows App SDK 1.1.0 Preview 2 (Apr 19, 2022)

  • We've just released our second preview of the 1.1 release of the Windows App SDK! This preview includes several new capabilities, including:
  • Additional windowing functionality (see Windows and Messages) available in AppWindow APIs.
  • Tall title bar support for apps drawing custom title bars with AppWindowTitleBar.ExtendsContentIntoTitleBar.
  • Improved usability and troubleshooting in Bootstrapper APIs for deployment.
  • Several bug fixes across the WinUI and Notifications areas.
  • Performance improvements in C# applications.

New in Windows App SDK 1.0.3 (Apr 19, 2022)

  • Bug fixes:
  • Fixed issue causing C# apps with WebView2 to crash on launch when the C/C++ Runtime (CRT) isn't installed.
  • Fixed touch input issues causing problems with keyboard shortcuts and other scenarios. For more information, see issue 6291 on GitHub.

New in Windows App SDK 1.0.2 (Apr 7, 2022)

  • Bug fixes:
  • Fixed layout cycle issue causing an app to crash when scrolling to the end of a ListView. For more information see issue 6218 on GitHub.
  • Fixed issue causing C# apps to crash on launch when the C/C++ Runtime (CRT) isn't installed. However, the CRT is still required for C# apps using WebView2. For more information see issue 2117 on GitHub.
  • Fixed issue where applications with Single-project MSIX did not generate a .appinstaller file. For more information see issue 1821 on GitHub.
  • Fixed issue where WinUI applications did not support .NET 6 dotnet build.

New in Windows App SDK 1.0.1 (Mar 18, 2022)

  • Bug fixes:
  • Fixed issue causing the MddBootstrapAutoinitializer to not compile with enabled ImplicitUsings. For more information see issue 1686 on GitHub.
  • Fixed issue where focus in WebView2 would be unexpectedly lost causing input and selection issues. For more information, see issue 5615 & issue 5570 on GitHub.
  • Fixed issue causing the in-app toolbar in Visual Studio to be unclickable when using a custom title bar in a WinUI 3 app.
  • Fixed issue causing Snap Layout to not appear when using a custom title bar in a WinUI 3 app. For more information, see issue 6333 & issue 6246 on GitHub.
  • Fixed issue causing an exception when setting Window.ExtendsContentIntoTitleBar property when Window.SetTitlebar has been called with a still-loading UIElement.
  • Fixed issue where Single-project MSIX apps did not support dotnet build.
  • Fixed issue causing unpackaged apps to not install after installing a packaged app. For more information, see issue 1871 on GitHub.
  • Fixed issue reducing performance during mouse drag operations.
  • Fixed crash when calling GetWindowIdFromWindow() in unpackaged apps. For more information, see discussion 1891 on GitHub.
  • The limitations and known issues for version 1.0 also apply to version 1.0.1:
  • Additionally, for apps with custom title bars, we have made changes in this release (and fixed numerous issues) that include fixes to the glass window used for drag&drop operations. The recommendation is to use the default values and behaviors (give them a try!). If your title bar used margins so that the default caption buttons were interactive, we recommend visualizing your drag region by setting the background of your title bar to red and then adjusting the margins to extend the drag region to the caption controls.
  • New features:
  • We have stabilized and enabled the creation of multiple windows on the same thread in WinUI 3 applications.

New in Windows App SDK 1.0 (Nov 17, 2021)

  • WinUI 3:
  • WinUI 3 is the native user experience (UX) framework for Windows App SDK. In this release we've added multiple new features from Windows App SDK 0.8 and stabilized issues from 1.0 Preview releases.
  • New features and updates:
  • We've added new controls (PipsPager, Expander, BreadcrumbBar) and updated existing controls to reflect the latest Windows styles from WinUI 2.6.
  • Single-project MSIX packaging is supported in WinUI by creating a new application using the “Blank App, Packaged…” template.
  • We now support deploying WinUI 3 apps without MSIX-packaging on Windows versions 1809 and above. Please view Create a WinUI 3 unpackaged desktop app for additional information.
  • WinUI 3 projects can now set their target version down to Windows 10, version 1809. Previously, they could only be set as low as version 1903.
  • In-app toolbar, Hot Reload, & Live Visual Tree for WinUI packaged apps are supported in Visual Studio 2022 Preview 5 and GA.
  • Important limitations:
  • Known issues for both packaged and unpackaged WinUI applications:
  • Run-time error in C++ apps that reference a C++ Windows Runtime Component: To resolve, add the below target to the end of the Windows Runtime Component's .vcxproj:
  • Known issues for WinUI applications with Single-project MSIX (Blank App, Packaged template):
  • Missing Package & Publish menu item until you restart Visual Studio: When creating a new app with Single-project MSIX in both Visual Studio 2019 and Visual Studio 2022 using the Blank App, Packaged (WinUI 3 in Desktop) project template, the command to publish the project doesn't appear in the menu until you close and re-open Visual Studio.
  • A C# app with Single-project MSIX will not compile without the "C++ (v14x) Universal Windows Platform Tools" optional component installed. View Install developer tools for additional information.
  • Potential run-time error in an app with Single-project MSIX that consumes types defined in a referenced Windows Runtime Component: To resolve, manually add activatable class entries to the appxmanifest.xml.
  • The expected error in C# applications is “COMException: Class not registered (0x80040154 (REGDB_E_CLASSNOTREG)).
  • The expected error in C++/WinRT applications is “winrt::hresult_class_not_registered”.
  • Known issues for WinUI applications without MSIX-packaging (unpackaged apps):
  • Some APIs require package identity and are not supported in unpackaged apps, such as:
  • ApplicationData
  • StorageFile.GetFileFromApplicationUriAsync
  • StorageFile.CreateStreamedFileFromUriAsync
  • ApiInformation (not supported on Windows 10)
  • Package.Current
  • Any API in the Windows.ApplicationModel.Resources namespace
  • Any API in the Microsoft.Windows.ApplicationModel.Resources namespace
  • Known issues for packaging and deploying WinUI applications:
  • The Package command is not supported in WinUI apps with Single-project MSIX (Blank App, Packaged template). Instead, use the Package & Publish command to create an MSIX package.
  • To create a NuGet package from a C# Class Library with the Pack command, ensure the active Configuration is Release.
  • The Pack command is not supported in C++ Windows Runtime Components to create a NuGet package.
  • WINDOWING:
  • The Windows App SDK provides an AppWindow class that evolves the previous easy-to-use Windows.UI.WindowManagement.AppWindow preview class and makes it available to all Windows apps, including Win32, WPF, and WinForms.
  • New Features:
  • AppWindow is a high-level windowing API that allows for easy-to-use windowing scenarios that integrates well with the Windows user experience and with other apps. Represents a high-level abstraction of a system-managed container of the content of an app. This is the container in which your content is hosted, and represents the entity that users interact with when they resize and move your app on screen. For developers familiar with Win32, the AppWindow can be seen as a high-level abstraction of the HWND.
  • DisplayArea represents a high-level abstraction of a HMONITOR, follows the same principles as AppWindow.
  • DisplayAreaWatcher allows a developer to observe changes in the display topology and enumerate DisplayAreas currently defined in the system.
  • INPUT:
  • These are the input APIs that support WinUI and provide a lower level API surface for developers to achieve more advanced input interactions.
  • New Features:
  • Pointer APIs: PointerPoint, PointerPointProperties, and PointerEventArgs to support retrieving pointer event information with XAML input APIs.
  • InputPointerSource API: Represents an object that is registered to report pointer input, and provides pointer cursor and input event handling for XAML's SwapChainPanel API.
  • Cursor API: Allows developers to change the cursor bitmap.
  • GestureRecognizer API: Allows developers to recognize certain gestures such as drag, hold, and click when given pointer information.
  • Important limitations:
  • All PointerPoint static factory functions have been removed: GetCurrentPoint, GetCurrentPointTransformed, GetIntermediatePoints, and GetIntermediatePointsTransformed.
  • The Windows App SDK doesn't support retrieving PointerPoint objects with pointer IDs. Instead, you can use the PointerPoint member function GetTransformedPoint to retrieve a transformed version of an existing PointerPoint object. For intermediate points, you can use the PointerEventArgs member functions GetIntermediatePoints and GetTransformedIntermediatePoints.
  • Direct use of the platform SDK API Windows.UI.Core.CoreDragOperation will not work with WinUI applications.
  • PointerPoint properties RawPosition and ContactRectRaw were removed because they referred to non-predicted values, which were the same as the normal values in the OS. Use Position and ContactRect instead. Pointer prediction is now handled with the Microsoft.UI.Input.PointerPredictor API object.
  • APP LIFECYCLE:
  • Most of the App Lifecycle features already exist in the UWP platform, and have been brought into the Windows App SDK for use by desktop app types, especially unpackaged Console apps, Win32 apps, Windows Forms apps, and WPF apps. The Windows App SDK implementation of these features cannot be used in UWP apps, since there are equivalent features in the UWP platform itself.
  • Non-UWP apps can also be packaged into MSIX packages. While these apps can use some of the Windows App SDK App Lifecycle features, they must use the manifest approach where this is available. For example, they cannot use the Windows App SDK RegisterForXXXActivation APIs and must instead register for rich activation via the manifest.
  • All the constraints for packaged apps also apply to WinUI apps, which are packaged, and there are additional considerations as described below.
  • Important considerations:
  • Rich activation: GetActivatedEventArgs
  • Unpackaged apps: Fully usable.
  • Packaged apps: Usable, but these apps can also use the platform GetActivatedEventArgs. Note that the platform defines Windows.ApplicationModel.AppInstance whereas the Windows App SDK defines Microsoft.Windows.AppLifecycle.AppInstance. And while UWP apps can use the ActivatedEventArgs classes, such as FileActivatedEventArgs and LaunchActivatedEventArgs, apps that use the Windows App SDK AppLifecycle feature must use the interfaces not the classes (e.g, IFileActivatedEventArgs, ILaunchActivatedEventArgs, and so on).
  • WinUi apps: WinUI's App.OnLaunched is given a Microsoft.UI.Xaml.LaunchActivatedEventArgs, whereas the platform GetActivatedEventArgs returns a Windows.ApplicationModel.IActivatedEventArgs, and the WindowsAppSDK GetActivatedEventArgs returns a Microsoft.Windows.AppLifecycle.AppActivationArguments object which can represent a platform LaunchActivatedEventArgs.
  • For more info, see Rich activation.
  • Register/Unregister for rich activation
  • Unpackaged apps: Fully usable.
  • Packaged apps: Not usable use the app's MSIX manifest instead.
  • For more info, see Rich activation.
  • Single/Multi-instancing
  • Unpackaged apps: Fully usable.
  • Packaged apps: Fully usable.
  • WinUI apps: If an app wants to detect other instances and redirect an activation, it must do so as early as possible, and before initializing any windows, etc. To enable this, the app must define DISABLE_XAML_GENERATED_MAIN, and write a custom Main (C#) or WinMain (C++) where it can do the detection and redirection.
  • RedirectActivationToAsync is an async call, and you should not wait on an async call if your app is running in an STA. For Windows Forms and C# WinUI apps, you can declare Main to be async, if necessary. For C++ WinUI and C# WPF apps, you cannot declare Main to be async, so instead you need to move the redirect call to another thread to ensure you don't block the STA.
  • For more info, see App instancing.
  • Power/State notifications
  • Unpackaged apps: Fully usable.
  • Packaged apps: Fully usable.
  • For more info, see Power management.
  • Known issue:
  • File Type associations incorrectly encode %1 to be %251 when setting the Verb handler's command line template, which crashes unpackaged Win32 apps. You can manually edit the Registry value to be %1 instead as a partial workaround. If the target file path has a space in it, then it will still fail and there is no workaround for that scenario.
  • These Single/Multi-instancing bugs will be fixed in an upcoming servicing patch:
  • AppInstance redirection doesn't work when compiled for x86
  • Registering a key, unregistering it, and re-registering it causes the app to crash
  • DWRITECORE:
  • DWriteCore is the Windows App SDK implementation of DirectWrite, which is the DirectX API for high-quality text rendering, resolution-independent outline fonts, and full Unicode text and layout support. DWriteCore is a form of DirectWrite that runs on versions of Windows down to Windows 10, version 1809 (10.0; Build 17763), and opens the door for you to use it cross-platform.
  • Features DWriteCore contains all of the features of DirectWrite, with a few exceptions.
  • Important limitations:
  • DWriteCore does not contain the following DirectWrite features:
  • Per-session fonts
  • End-user defined character (EUDC) fonts
  • Font-streaming APIs
  • Low-level rendering API support is partial.
  • DWriteCore doesn't interoperate with Direct2D, but you can use IDWriteGlyphRunAnalysis and IDWriteBitmapRenderTarget.
  • MRT CORE:
  • MRT Core is a streamlined version of the modern Windows Resource Management System that is distributed as part of the Windows App SDK.
  • Important limitations:
  • In .NET projects, resource files copy-pasted into the project folder aren't indexed on F5 if the app was already built. As a workaround, rebuild the app. See issue 1503 for more info.
  • In .NET projects, when a resource file is added to the project using the Visual Studio UI, the files may not be indexed by default. See issue 1786 for more info. To work around this issue, please remove the entries below in the CSPROJ file
  • For unpackaged C++ WinUI apps, the resource URI is not built correctly. To work around this issue, add the following in the vcxproj
  • DEPLOYMENT:
  • New Features and updates:
  • You can auto-initialize the Windows App SDK through the WindowsPackageType project property to load the Windows App SDK runtime and call the Windows App SDK APIs. See Create a WinUI 3 app for instructions.
  • Unpackaged apps can deploy Windows App SDK by integrating in the standalone Windows App SDK .exe installer into your existing MSI or setup program. For more info, see Windows App SDK deployment guide for unpackaged apps.
  • Unpackaged .NET apps can also use .NET wrapper for the bootstrapper API to dynamically take a dependency on the Windows App SDK framework package at run time. For more info about the .NET wrapper, see .NET wrapper library.
  • Packaged apps can use the deployment API to verify and ensure that all required packages are installed on the machine. For more info about how the deployment API works, see the deployment guide for packaged apps.
  • Important limitations:
  • The .NET wrapper for the bootstrapper API is only intended for use by unpackaged .NET applications to simplify access to the Windows App SDK.
  • Only MSIX packaged apps that are full trust or have the packageManagement restricted capability have the permission to use the deployment API to install the main and singleton package dependencies. Support for partial-trust packaged apps will be coming in later releases.
  • When F5 testing an x86 app which uses the DeploymentManager.Initialize method on an x64 system, ensure that the x64 framework is first installed by running the WindowsAppRuntimeInstall.exe. Otherwise, you will encounter a NOT_FOUND error due to Visual Studio not deploying the x64 framework, which normally occurs through Store deployment or sideloading.
  • OTHER LIMITATIONS AND KNOWN ISSUES:
  • No support for Any CPU build configuration: When adding the Windows App SDK to an existing .NET application or component that supports Any CPU, you must specify the desired architecture: x86, x64 or arm64.
  • Upgrading from .NET 5 to .NET 6: When upgrading in the Visual Studio UI, you may run into build errors. As a workaround, manually update your project file's TargetFrameworkPackage to the below: <TargetFramework>net6.0-windows10.0.19041.0</TargetFramework>
  • C# Single-project MSIX app doesn't compile if C++ UWP Tools aren't installed. If you have a C# Single-project MSIX project, then you'll need to install the C++ (v14x) Universal Windows Platform Tools optional component.
  • Subsequent language VSIX fails to install into Visual Studio 2019 when multiple versions of Visual Studio 2019 are installed. If you have multiple versions of Visual Studio 2019 installed (e.g. Release and Preview) and then install the Windows App SDK VSIX for both C++ and C#, the second installation will fail. To resolve, uninstall the Single-project MSIX Packaging Tools for Visual Studio 2019 after the first language VSIX. View this feedback for additional information about this issue.
  • If you want to co_await on the DispatcherQueue.TryEnqueue method, then use the resume_foreground helper function in the Windows Implementation Library (WIL):
  • Add a reference to Microsoft.Windows.ImplementationLibrary NuGet package.
  • Add the #include <wil/cppwinrt_helpers.h> statement to your code file.
  • Use wil::resume_foreground(your_dispatcher); to co_await the result.

New in Windows App SDK 1.0 Preview 1 (Sep 24, 2021)

  • WinUI 3:
  • This release of WinUI 3 is focused on building towards 1.0 Stable with bug fixes.
  • New features: No new features in Preview 1.
  • Fixed issues
  • Windowing:
  • This release brings the Windowing API we introduced in Experimental 1 to a Preview state. There are no major new features areas in this release as it is focused on bugfixes, stability, and adjustments to the API signature. The noteworthy changes and additions are called out below.
  • New features:
  • DisplayAreaWatcher has been added to the Windowing APIs. This allows a developer to observe changes in the display topology and enumerate DisplayAreas currently defined in the system.
  • AppWindow now supports setting the window icon via the SetIcon method, and AppWindowTitleBar now supports selecting whether to show/hide the window icon along with the system menu via the IconShowOptions property.
  • Important limitations:
  • This release of AppWindow is currently available only to Win32 apps (both packaged and unpackaged).
  • The Windows App SDK does not currently provide methods for attaching UI framework content to an AppWindow; you are limited to using the HWND interop access methods.
  • Window title bar customization works only on Windows 11. Use the IsCustomizationSupported method to check for title bar customization feature support. We intend to bring this functionality down-level.
  • Input:
  • This release brings some new features to the Input API. The noteworthy changes and additions are called out below.
  • New features and updates:
  • PointerPredictor gives input latency sensitive applications such inking applications the ability to predict input point locations up to 15ms in the future to achieve better latency and smooth animation.
  • PenDeviceInterop enables you to acquire a reference to the Windows.Devices.Input.PenDevice by using the FromPointerPoint method.
  • InputCursor provides an explicit distinction between preset system cursor types and custom cursor types by removing the "Custom" type present in CoreCursor, and splitting the CoreCursor object into separate objects.
  • Updates to InputCursor APIs.
  • MRT Core:
  • Starting in version 1.0 Preview 1, MRT Core APIs have moved from the Microsoft.ApplicationModel.Resources namespace to the Microsoft.Windows.ApplicationModel.Resources namespace.
  • Other limitations and known issues
  • Projects created by using the C++ Blank App, Packaged with WAP (WinUI 3 in Desktop) project template encounter the following build error by default: fatal error C1083: Cannot open include file: 'winrt/microsoft.ui.dispatching.co_await.h': No such file or directory. To resolve this issue, remove the following line of code from the pch.h file. This issue will be fixed in the next release.
  • If you want to co_await on the DispatcherQueue.TryEnqueue method, use the resume_foreground helper function in the Windows Implementation Library (WIL):
  • Add a reference to Microsoft.Windows.ImplementationLibrary NuGet package.
  • Add the #include <wil/cppwinrt.h> statement to your code file.
  • Use wil::resume_foreground(your_dispatcher); to co_await the result.
  • No support for Any CPU build configuration: The Windows App SDK is written in native code and thus does not support Any CPU build configurations. The WinUI project templates only allow architecture-specific builds. When adding the Windows App SDK to an existing .NET application or component that supports Any CPU, you must specify the desired architecture: x86, x64 or arm64.
  • .NET apps must target build 18362 or higher: Your TFM must be set to net5.0-windows10.0.18362 or higher, and your packaging project's <TargetPlatformVersion> must be set to 18362 or higher. For more info, see the known issue on GitHub.
  • C# projects using 1.0 Preview 1 must use the following .NET SDK: .NET 5 SDK version 5.0.400 or later if you're using Visual Studio 2019 version 16.11.
  • Unpackaged apps not supported on Windows 10 version 1809: This should be resolved in the next release.

New in Windows App SDK 0.8 Stable (Sep 24, 2021)

  • We just released the 0.8 GA release of Windows App SDK formerly known as Project Reunion! This release consists of stabilization improvements, critical bug fixes, and some new functionality. This is an opportunity for our customers to try this out and provide feedback.