Redigera

Dela via


Latest stable channel release notes for the Windows App SDK

The stable channel provides releases of the Windows App SDK that are supported for use by apps in production environments. Apps that use the stable release of the Windows App SDK can also be published to the Microsoft Store.

Important links:

Stable channel release note archive:

Downloads for the Windows App SDK

Note

The Windows App SDK Visual Studio Extensions (VSIX) are no longer distributed as a separate download. They are available in the Visual Studio Marketplace inside Visual Studio.

Version 1.7

The following sections describe new and updated features and known issues for version 1.7.

In an existing Windows App SDK app, you can update your Nuget package to 1.7.250310001 (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.

Version 1.7.0 (1.7.250310001)

New Badge Notifications Feature

The notification badge conveys a summary or status information specific to an app. This can be numeric (1-99) or a glyph from one of the system-provided glyphs. This new functionality provides an easy way for apps to show status, such as number of unread mails in a mail app or number of new posts in a social media app.

For more info, see GitHub #4926.

New CameraCaptureUI API

Developers have encountered challenges in the desktop environments due to WinRT CameraCaptureUI being dependent on CoreWindows, and lack of InitializeWithWindow support. The team has released this new Microsoft.Windows.Media.Capture.CameraCaptureUI API to WinAppSDK to provide a streamlined solution with feature parity, now supporting WindowID in the constructor for enhanced desktop compatibility.

For more info, see GitHub issue #4721.

New Authentication API

A new OAuth2Manager API provides a streamlined solution for web authentication, offering OAuth 2.0 capabilities with full feature parity across all Windows platforms supported by Windows App SDK. This new Authentication Manager is different from the public WebAuthentication Broker API, as it better aligns with OAuth best practices.

For more info, see GitHub issue #4772.

New Background Task support

Background tasks are app components that run in the background without a user interface, performing actions like download files, syncing data, sending notifications or updating files. The new BackgroundTaskBuilder API provides WinAppSDK dependent apps the ability to directly register the full trust COM components with background tasks, removing the need to implement a workaround.

For more info, see GitHub #4831.

New TitleBar control

A new TitleBar control makes it much easier to create a great, customizable titlebar for your app. Configure properties such as the titlebar icon, Title, and Subtitle, include an integrated back button, or even add a custom control like a search box! The control includes robust titlebar capabilities like empty-space draggable regions, theme responsiveness, caption buttons, and built-in accessibility support so you can focus on your personalized design and still get the same reliable titlebar as the default experience.

For more info, see GitHub #10056.

Support for MathML

RichEditBox now supports MathML, via RichEditTextDocument.SetMathMode and RichEditTextDocument.SetMathML.

For more info, see GitHub #4196.

Enhanced Runtime

  • Windows App SDK's Dynamic Dependencies APIs delegate all calls to Windows 11's implementation when running on >= Windows 11 24H2 (10.0.26100.0) providing improved performance and robustness. This holds true for all C/C++ (Mdd*()) and WinRT (namespace Microsoft.Windows.ApplicationModel.DynamicDependency) APIs.
    • Packaged processes calling Windows App SDK's Dynamic Dependencies APIs is now supported on >= Windows 11 24H2 (10.0.26100.0). This is still unsupported on older systems (WinAppSDK's implementation doesn't support packaged apps).
    • This has no impact to the developer experience. Callers can continue using the Bootstrapper API to add the WinAppSDK framework package to the calling process' package graph.
    • For more info, see GitHub PR #4949.
  • Undocked Registration-free WinRT (URFW) is not enabled on >= Windows 11 24H2 (10.0.26100.0). The OS' implementation handles all Registration-free WinRT activity on these systems providing improved performance and robustness. For more info, see GitHub PR #4949.
  • Detours is not used on >= Windows 11 24H2 (10.0.26100.0). Detours was only used by Windows App SDK's implementations of Dynamic Dependencies and Registration-free WinRT, but as those features are now handled by the OS' implementations there's no need for them to initialize or otherwise wire up Detours. This provides a small performance gain when loading Microsoft.WindowsAppRuntime.dll. For more info, see GitHub PR #4949.

New AppWindow APIs

New AppWindow APIs make it easier to control your app windows to create a great experience. New capabilities include using SetTaskBarIcon and SetTitleBarIcon to independently set the taskbar and titlebar icons, using AppWindowTitleBar.PreferredTheme to set the light/dark theme of the titlebar, and using new properties like OverlappedPresenter.PreferredMinimumWidth and OverlappedPresenter.PreferredMaximumHeight to set a minimum or maximum width or height for the window.

New Island APIs

The updates in the Microsoft.UI.Content namespace introduce several significant enhancements and new features aimed at improving the functionality and interoperability of the ContentIsland APIs. These changes are designed to support new hosting scenarios, enhance rendering capabilities, and ensure better synchronization of input and accessibility states. Key updates include:

  1. New primitives for hosting ContentIslands:
    • DesktopPopupSiteBridge: Enables hosting a ContentIsland in the environment of a Win32 window with WS_POPUP style, facilitating scenarios where applications use popup windows for dialog boxes and message boxes.
    • ChildSiteLink: Allows a parent ContentIsland to host a nested child ContentIsland, providing a seamless partitioning of the rendering surface without user experience seams.
    • DesktopAttachedSiteBridge: Attaches to an existing Win32 window instead of creating a new one, designed to host a ContentIsland with Windows.UI.Composition.Visuals at the root of the Win32 window hierarchy, ensuring full control over Win32-based input processing and accessibility.
  2. Enhanced rendering and input synchronization:
    • The LocalToParentTransformMatrix and ActualSize properties of a ChildSiteLink are updated relative to the parent ContentIsland before rendering, avoiding latency and ensuring synchronized input and accessibility states.
  3. ContentIslands with Windows.UI.Composition.Visuals:
    • ContentIsland can use Windows.UI.Composition.Visuals for rendering and Win32 window APIs for input processing, enabling interoperability with applications that use legacy UX frameworks. This allows for a gradual adoption of newer UX frameworks layered on top of the Windows App SDK Scene Graph, such as WinUI and React Native for Windows on Fabric. These updates collectively enhance the flexibility, performance, and interoperability of the ContentIsland APIs, enabling developers to create more sophisticated and responsive applications.

Additionally, the updates in the Microsoft.UI.Xaml namespace introduce a new XamlIsland API, which allows for the hosting of Xaml content within a SiteBridge or a ChildSiteLink. The XamlIsland offers greater flexibility compared to the DesktopWindowXamlSource API. While DesktopWindowXamlSource requires hosting within an existing Win32 window, the XamlIsland exposes a ContentIsland, enabling more options for hosting Xaml content.

Other notable changes

  • New RuntimeCompatibilityOptions support will allow more control over how servicing changes affect apps. For more info, see GitHub #4966.
  • A new ReleaseInfo API provides easy access to the version of the Windows App SDK Runtime in use. For more info, see GitHub #2893.
  • Note: Windows Copilot Runtime APIs are not included this release. To experiment with these APIs, please continue to use the 1.7-experimental3 release and share your feedback!

New APIs for 1.7.0

This release includes the following new APIs compared to the stable 1.6 release:

Microsoft.Security.Authentication.OAuth

    AuthFailure
    AuthRequestParams
    AuthRequestResult
    AuthResponse
    ClientAuthentication
    CodeChallengeMethodKind
    OAuth2Manager
    TokenFailure
    TokenFailureKind
    TokenRequestParams
    TokenRequestResult
    TokenResponse
Microsoft.UI.Content

    ChildSiteLink
    ContentAutomationOptions
    ContentEnvironmentStateChangedEventArgs
        DidDisplayScaleChange

    ContentIsland
        AutomationOption
        Children
        CreateForSystemVisual
        FindAllForSystemCompositor
        FragmentRootAutomationProvider
        GetBySystemVisual
        LocalToClientTransformMatrix
        LocalToParentTransformMatrix
        NextSiblingAutomationProvider
        ParentAutomationProvider
        Popups
        PreviousSiblingAutomationProvider
        ProcessesKeyboardInput
        ProcessesPointerInput

    ContentIslandEnvironment
        DisplayScale

    ContentIslandStateChangedEventArgs
        DidLocalToClientTransformMatrixChange
        DidLocalToParentTransformMatrixChange

    ContentSite
        LocalToClientTransformMatrix
        LocalToParentTransformMatrix
        ProcessesKeyboardInput
        ProcessesPointerInput

    ContentSiteAutomationProviderRequestedEventArgs
    ContentSiteEnvironment
        DisplayScale

    ContentSiteEnvironmentView
        DisplayScale

    ContentSiteView
        AutomationOption
        LocalToClientTransformMatrix
        LocalToParentTransformMatrix
        ProcessesKeyboardInput
        ProcessesPointerInput

    DesktopAttachedSiteBridge
    DesktopChildSiteBridge
        CreateWithDispatcherQueue

    DesktopPopupSiteBridge
    IContentSiteAutomation
    IContentSiteInput
    IContentSiteLink
Microsoft.UI.Input

    InputFocusNavigationHost
        GetForSiteLink
Microsoft.UI.Text

    RichEditTextDocument
        GetMathML
        GetMathMode
        SetMathML
        SetMathMode
Microsoft.UI.Windowing

    AppWindow
        SetTaskbarIcon
        SetTaskbarIcon
        SetTitleBarIcon
        SetTitleBarIcon

    AppWindowTitleBar
        PreferredTheme

    OverlappedPresenter
        PreferredMaximumHeight
        PreferredMaximumWidth
        PreferredMinimumHeight
        PreferredMinimumWidth

    TitleBarTheme
Microsoft.UI.Xaml

    XamlIsland
    XamlRoot
        ContentIsland
Microsoft.UI.Xaml.Controls

    TitleBar
    TitleBarAutomationPeer
    TitleBarTemplateSettings
Microsoft.Windows.ApplicationModel.Background

    BackgroundTaskBuilder
Microsoft.Windows.ApplicationModel.Background.UniversalBGTask

    Task
Microsoft.Windows.ApplicationModel.WindowsAppRuntime

    ReleaseInfo
    RuntimeCompatibilityChange
    RuntimeCompatibilityOptions
    RuntimeInfo
    WindowsAppRuntimeVersion
Microsoft.Windows.BadgeNotifications

    BadgeNotificationGlyph
    BadgeNotificationManager
Microsoft.Windows.Media.Capture

    CameraCaptureUI
    CameraCaptureUIMaxPhotoResolution
    CameraCaptureUIMaxVideoResolution
    CameraCaptureUIMode
    CameraCaptureUIPhotoCaptureSettings
    CameraCaptureUIPhotoFormat
    CameraCaptureUIVideoCaptureSettings
    CameraCaptureUIVideoFormat

Bug fixes

This release includes the following bug fixes:

  • Changed SplitButton so touch input now matches the behavior of mouse input. For more info, see GitHub issue #178.
  • Changed cascading menus so sub menus now open immediately if clicked. For more info, see GitHub issue #939.
  • Fixed an issue where opening a ComboBox which is in a flyout closes all flyouts. For more info, see GitHub issue #1467.
  • Fixed an issue where SwipeControl would randomly crash in a ListView. For more info, see GitHub issue #2527.
  • Fixed an issue where drag-and-drop only a ListViewItem would leave it in the wrong visual state. For more info, see GitHub issue #3458.
  • Fixed an issue in StackLayout so that it respects the ItemsRepeater.HorizontalAlignment and ItemsRepeater.VerticalAlignment properties (when StackLayout.Orientation is Vertical and Horizontal respectively). The old layout behaved as if the ItemsRepeater alignment was Stretch. With the fix, the layout results in items aligned to the right when the Right alignment is used, for example. For more info, see GitHub issue #3842.
  • Fixed a potential crash when using a resource which contains an x:Bind. For more info, see GitHub issue #5786.
  • Fixed an issue where deleting items in the ItemsRepeater's source would not generate items which moved up into view. For more info, see GitHub issue #6661.
  • Fixed an issue where the right Alt key would not show keytips for Access Keys. For more info, see GitHub issue #8447. Note: This may result in key events for the right Alt key no longer being delivered to handles in the app or controls.
  • Fixed an issue where using a ResourceDictionary containing only a single resource would fail to find that resource and likely cause a crash. For more info, see GitHub issue #8832.
  • Fixed a crash where UniformGridLayout would sometimes pick a wrong layout anchor and cause infinite layout passes when scrolling backwards. For more info, see GitHub issue #9199.
  • Fixed an issue where setting NavigationFailedEventArgs.Handled to True would still throw an exception. For more info, see GitHub issue #9632.
  • Fixed an issue where TabView would not apply any specified CornerRadius. For more info, see GitHub issue #9846.
  • Fixed a potential layout cycle crash in StackLayout. For more info, see GitHub issue #9852.
  • Fixed a potential crash in ItemsView when removing items. For more info, see GitHub issue #9868.
  • Fixed an issue in 1.7-preview1 where popups no longer correctly moved with their parent window. For more info, see GitHub issue #10386.
  • Based on feedback from 1.7-preview1, renamed some properties on the new TitleBar control.