Notas sobre a versão do canal de preview para o SDK do Aplicativo Windows

Importante

O canal de preview não é compatível com o uso em ambientes de produção e os aplicativos que usam as versões de preview não podem ser publicados na Microsoft Store.

Esse canal de preview fornece uma preview do próximo lançamento estável. Pode haver alterações significativas na API entre uma determinada versão prévia do canal e a próxima versão estável. As versões do canal de visualização não incluem APIs experimentais.

Links importantes:

Versão 1.5 Preview 1 (1.5.0-preview1)

Esta é a versão mais recente do canal de preview para a versão 1.5.

Em um SDK do Aplicativo Windows 1.4 existente (do canal estável), você pode atualizar seu pacote Nuget para 1.5.0-preview1 (confira a seção Atualizar um pacote em Instalar e gerenciar pacotes no Visual Studio usando o Gerenciador de Pacotes NuGet).

Para visualizar o runtime atualizado e o MSIX, confira Downloads para o SDK do Aplicativo Windows.

Atualizações de tempo de execução e desligamento de Ilhas XAML

  • Há uma distinção comportamental entre o WinAppSDK 1.4 e o WinAppSDK 1.5 para aplicativos baseados em Ilhas XAML quando a última janela Xaml é fechada em qualquer thread.
    • No WinAppSDK 1.4, o tempo de execução de XAML sempre sai do loop de eventos do thread quando a última janela Xaml em um thread é fechada.
    • No WinAppSDK 1.5:
      • Se seu aplicativo for da área de trabalho WinUI, o comportamento padrão ainda será igual ao do WinAppSDK 1.4.
      • Se você estiver usando Xaml para a API DesktopWindowXamlSource ("Ilhas XAML"), o comportamento padrão será que o Xaml não sairá automaticamente do loop de eventos do thread.
      • Nos dois modos, é possível alterar esse comportamento definindo a propriedade Application.DispatcherShutdownMode.
    • Para saber mais, consulte a documentação da propriedade Application.DispatcherShutdownMode quando disponível.
  • Há uma distinção comportamental entre o WinAppSDK 1.4 e o WinAppSDK 1.5 para aplicativos baseados em Ilhas XAML na vida útil do tempo de execução de XAML:
    • No WinAppSDK 1.4, o tempo de execução do Xaml será desligado em um thread se todos os objetos WindowsXamlManager e DesktopWindowXamlSource em certo thread forem fechados ou desligados, ou a execução DispatcherQueue nesse thread for encerrada (o tempo de execução do Xaml será desligado durante o estágio DispatcherQueue.FrameworkShutdownStarting).
    • No WinAppSDK 1.5, o tempo de execução do Xaml é desligado em um thread somente quando o DispatcherQueue em execução nesse thread é desligado (o tempo de execução do Xaml é desligado durante o estágio DispatcherQueue.FrameworkShutdownStarting).
    • Para obter mais informações, confira a documentação da classe WindowsXamlManager quando disponível.

Controle de mapas WinUI

A versão inicial do controle WinUI Maps já está disponível! Esse controle é das plataformas WebView2 e Azure Mapas, fornecendo os seguintes recursos:

  • Movimento panorâmico e ampliação com os botões do mapa ou toque.
  • Alterar o estilo do mapa para exibição de satélite, terreno ou rua.
  • Adicionar de forma programática pinos interativos com ícones personalizáveis pelo desenvolvedor ao mapa.
  • Personalização do desenvolvedor para onde o mapa está centrado na carga inicial.
  • Controle para desenvolvedores sobre ocultar ou mostrar os botões para movimento panorâmico, ampliação e estilos de mapa.

Observação

Para usar o controle Maps, você precisará de uma chave do Azure Mapas. Para criar a chave, consulte a página de documentação do Azure Mapas para criar um aplicativo Web.

O controle Maps é totalmente novo e agradecemos seus comentários para avaliar a direção futura!

Outros recursos novos do WinAppSDK

Correções de bug

  • Corrigido um problema da versão 1.5-experimental2 em que a DLL de projeção não era gerada. Para obter mais informações, confira o issue n.º 4152 do GitHub.
  • Problema corrigido em que o botão de reticências no pop-up de formatação de texto do RichEditBox não exibia a lista de ações devidamente. Para obter mais informações, confira o issue n.º 9140 do GitHub.
  • Problema corrigido em que ListView não tratava adequadamente aceleradores de teclado. Para saber mais, confira o problema n.º 8063 do GitHub.
  • Problema corrigido de violação de acesso com o uso de AccessKey para fechar uma janela. Para obter mais informações, confira o issue n.º 8648 do GitHub.
  • Problema corrigido que afetava o alinhamento de texto em um MenuFlyoutItem em um MenuBar. Para obter mais informações, confira o issue n.º 8755 do GitHub.
  • Problema corrigido em que o texto destacado não permanecia destacado ao clicar com o botão direito do mouse. Para obter mais informações, confira o issue n.º 1801 do GitHub.
  • Problema corrigido que levava janelas inativas a travar o aplicativo quando fechado. Para obter mais informações, confira o issue n.º 8913 do GitHub.
  • Problema corrigido que podia travar aplicativos ao rolar com o botão do meio do mouse e, logo depois, clicar com o botão esquerdo do mouse. Para obter mais informações, confira o issue n.º 9233 do GitHub.

Novas APIs na versão 1.5.0-preview1

A versão 1.5-preview1 inclui as seguintes novas APIs em comparação com a versão estável 1.4:

Microsoft.Graphics.DirectX
 
    DirectXPixelFormat
        A4B4G4R4
Microsoft.UI.Input
 
    FocusNavigationReason
    FocusNavigationRequest
    FocusNavigationRequestEventArgs
    FocusNavigationResult
    InputFocusController
        DepartFocus
        NavigateFocusRequested
 
    InputFocusNavigationHost
Microsoft.UI.Xaml
 
    Application
        DispatcherShutdownMode

    DebugSettings
        LayoutCycleDebugBreakLevel
        LayoutCycleTracingLevel

    DispatcherShutdownMode
    LayoutCycleDebugBreakLevel
    LayoutCycleTracingLevel
Microsoft.UI.Xaml.Controls
 
    MapControl
    MapControlMapServiceErrorOccurredEventArgs
    MapElement
    MapElementClickEventArgs
    MapElementsLayer
    MapIcon
    MapLayer
    SelectorBar
    SelectorBarItem
    SelectorBarSelectionChangedEventArgs
    WebView2
        EnsureCoreWebView2Async
        EnsureCoreWebView2Async
Microsoft.UI.Xaml.Hosting
 
    WindowsXamlManager
        GetForCurrentThread
        XamlShutdownCompletedOnThread
 
    XamlShutdownCompletedOnThreadEventArgs
Microsoft.Web.WebView2.Core
 
    CoreWebView2
        FrameId

    CoreWebView2AcceleratorKeyPressedEventArgs
        IsBrowserAcceleratorKeyEnabled

    CoreWebView2BrowserExtension
    CoreWebView2BrowsingDataKinds
        ServiceWorkers

    CoreWebView2CustomSchemeRegistration
        CoreWebView2CustomSchemeRegistration (String)
        AllowedOrigins
        SchemeName

    CoreWebView2Environment
        GetProcessExtendedInfosAsync

    CoreWebView2EnvironmentOptions
        AreBrowserExtensionsEnabled
        CustomSchemeRegistrations

    CoreWebView2Frame
        FrameId

    CoreWebView2FrameInfo
        FrameId
        FrameKind
        ParentFrameInfo

    CoreWebView2FrameKind
    CoreWebView2MouseEventKind
        NonClientRightButtonDown
        NonClientRightButtonUp

    CoreWebView2NavigationKind
    CoreWebView2NavigationStartingEventArgs
        NavigationKind

    CoreWebView2NewWindowRequestedEventArgs
        OriginalSourceFrameInfo

    CoreWebView2ProcessExtendedInfo
    CoreWebView2Profile
        AddBrowserExtensionAsync
        Delete
        Deleted
Microsoft.Windows.Management.Deployment
 
    AddPackageOptions
    EnsureReadyOptions
    PackageDeploymentContract
    PackageDeploymentManager
    PackageDeploymentProgress
    PackageDeploymentProgressStatus
    PackageDeploymentResult
    PackageDeploymentStatus
    PackageRuntimeManager
    PackageSet
    PackageSetItem
    PackageSetItemRuntimeDisposition
    PackageSetRuntimeDisposition
    PackageVolume
    ProvisionPackageOptions
    RegisterPackageOptions
    RemovePackageOptions
    StagePackageOptions
    StubPackageOption
Microsoft.Windows.Widgets.Feeds.Providers
 
    CustomQueryParametersRequestedArgs
    CustomQueryParametersUpdateOptions
    FeedDisabledArgs
    FeedEnabledArgs
    FeedManager
    FeedProviderDisabledArgs
    FeedProviderEnabledArgs
    FeedProviderInfo
    IFeedManager
    IFeedProvider

Versão 1.4 versão prévia 2 (1.4.0-preview2)

Esta é a versão mais recente do canal de versão prévia da versão 1.4.

Em um SDK do Aplicativo Windows 1.3 existente (do canal estável), você pode atualizar seu pacote Nuget para 1.4.0-preview2 (confira a seção Atualizar um pacote em Instalar e gerenciar pacotes no Visual Studio usando o Gerenciador de Pacotes NuGet).

Para visualizar o runtime atualizado e o MSIX, confira Downloads para o SDK do Aplicativo Windows.

Ilhas XAML não são mais experimentais

As Ilhas XAML e a plataforma ContentIslands subjacente não são mais experimentais.

  • Atualmente, as Ilhas XAML são testadas apenas para uso em aplicativos C++. Esta versão não inclui elementos de encapsulamento convenientes para uso no WPF ou no WinForms.
  • DesktopWindowXamlSource e os tipos relacionados foram adicionados ao namespace Microsoft.UI.Xaml.Hosting para o XAML Islands. XamlRoot.ContentIslandEnvironment foi adicionado para ajudar a acessar as informações da Ilha subjacentes de um elemento.
  • Vários tipos novos foram apresentados nos namespaces Microsoft.UI.Content e Microsoft.UI.Input como suporte subjacente para Ilhas XAML ou para utilizar essa funcionalidade ContentIslands sem XAML.
  • Um novo DragDropManager (além dos tipos relacionados) foi adicionado ao namespace Microsoft.UI.Input.DragDrop para cenários de Ilhas.

Atualizações de ItemsView

A nova classe ItemsView que foi introduzida na versão 1.4-preview1 foi substancialmente atualizada com novas propriedades e uma nova classe de suporte.

  • O novo controle ItemsView exibe uma coleção de dados. O ItemsView é semelhante aos controles ListView e GridView, mas é criado utilizando os componentes ItemsRepeater, ScrollView, ItemContainer e ItemCollectionTransitionProvider. Ele oferece a capacidade exclusiva de conectar implementações personalizadas de Layout ou ItemCollectionTransitionProvider. Outra vantagem importante é a capacidade de alternar o layout em tempo real, preservando a seleção de itens. O controle ScrollView interno também oferece recursos que não estão disponíveis no controle ListView/GridViewdo ScrollViewer, como a capacidade de controlar a animação durante rolagens programáticas.
    • Uma nova propriedade ItemTransitionProvider em ItemsRepeater (e no novo controle ItemsView) permite que você especifique um objeto ItemCollectionTransitionProvider para controlar as animações de transição nesse controle. Um método CreateDefaultItemTransitionProvider também foi adicionado a Layout, o que permite que um objeto de layout forneça uma transição de fallback para acompanhá-lo, se você não fornecer uma explicitamente no controle ItemsView.
    • Uma nova propriedade IndexBasedLayoutOrientation em Layout em que a orientação do layout, se houver, dos itens é baseada em seu índice na coleção de origem. O valor padrão é IndexBasedLayoutOrientation.None. Os layouts personalizados definem essa propriedade chamando o novo método SetIndexBasedLayoutOrientation (protegido).
    • Uma nova propriedade VisibleRect em VirtualizingLayoutContext obtém o retângulo da janela de visualização visível dentro do FrameworkElement associado ao Layout. O método virtual VirtualizingLayoutContext.VisibleRectCore protegido pode ser substituído para fornecer o valor que será retornado da propriedade VisibleRect.
  • A nova classe LinedFlowLayout é normalmente utilizada para dispor os itens do controle de coleção ItemsView. É particularmente útil para exibir uma coleção de imagens. Ele faz isso dispondo-os da esquerda para a direita e de cima para baixo, em linhas de altura igual. As imagens preenchem uma linha horizontal e, em seguida, encapsulam em uma próxima linha. As imagens podem ser cortadas nas bordas esquerda e direita para caber em uma linha. Eles também podem ser expandidos horizontalmente e cortados nas bordas superior e inferior para preencher uma linha quando o modo de alongamento for empregado.

Novos recursos e atualizações de todo o WinAppSDK

  • Popup/FlyoutBase.IsConstrainedToRootBounds = false agora é suportado, permitindo que um pop-up/menu suspenso se estenda para fora dos limites da janela pai. Uma propriedade SystemBackdrop foi adicionada a esses tipos para dar suporte ao acrílico nesses popups sem restrições. Por padrão, os menus utilizam isso para ter o acrílico.
  • Closed, FrameworkClosed e IsClosed foram adicionados a DesktopAcrylicController e MicaController para melhorar o tratamento durante o desligamento de objetos/thread.
  • DesktopAcrylicController.Kind agora pode ser definido para escolher entre algumas aparências padrão de acrílico.
  • DispatcherQueue tem alguns novos eventos e auxiliares para facilitar o desligamento melhor organizado e para que os aplicativos que utilizam Ilhas executem facilmente um loop de eventos com suporte padrão.
  • InputNonClientPointerSource no namespace Microsoft.UI.Input pode ser utilizado em cenários personalizados da barra de título para definir regiões que não sejam da área do cliente. O código pode se registrar para eventos correspondentes, como eventos de passar o mouse e clicar nessas regiões.
  • AppWindow tem alguns novos auxiliares para obter e associar a um DispatcherQueue.
  • O novo evento TreeView.SelectionChanged permite que os desenvolvedores respondam quando o usuário ou o código por trás altera o conjunto de nós selecionados no controle TreeView.
  • O novo controle ScrollView fornece uma nova alternativa ao ScrollViewer. Esse novo controle é altamente alinhado em comportamento e API com o controle ScrollViewer existente, mas é baseado em InteractionTracker, tem novos recursos, como alterações de exibição orientadas por animação, e também foi projetado para garantir a funcionalidade completa de ItemsRepeater. Consulte Um problema mais flexível do ScrollViewer - Problema n.º 108 - microsoft/microsoft-ui-xaml (github.com) para obter mais detalhes. Vários novos tipos, incluindo ScrollPresenter, fazem parte do modelo ScrollView de modo geral.
  • O novo controle AnnotatedScrollBar amplia a funcionalidade de uma barra de rolagem regular, fornecendo uma maneira fácil de navegar por uma grande coleção de itens. Isso é feito por meio de um trilho clicável com rótulos que funcionam como marcadores. Ele também permite uma compreensão mais granular do conteúdo rolável, exibindo uma dica de ferramenta ao passar o mouse sobre o trilho clicável.

Novas APIs na versão 1.4.0-preview2

A versão 1.4-preview2 inclui as seguintes novas APIs em comparação com a versão 1.4-preview1 anterior:

Microsoft.UI
 
    ClosableNotifierHandler
    IClosableNotifier
Microsoft.UI.Composition.SystemBackdrops
 
    DesktopAcrylicController
        Closed
        FrameworkClosed
        IsClosed
        Kind
 
    DesktopAcrylicKind
    MicaController
        Closed
        FrameworkClosed
        IsClosed
Microsoft.UI.Content
 
    ContentCoordinateConverter
    ContentCoordinateRoundingMode
    ContentDeferral
    ContentEnvironmentSettingChangedEventArgs
    ContentEnvironmentStateChangedEventArgs
    ContentIsland
    ContentIslandAutomationProviderRequestedEventArgs
    ContentIslandEnvironment
    ContentIslandStateChangedEventArgs
    ContentLayoutDirection
    ContentSite
    ContentSiteEnvironment
    ContentSiteEnvironmentView
    ContentSiteRequestedStateChangedEventArgs
    ContentSiteView
    ContentSizePolicy
    DesktopChildSiteBridge
    DesktopSiteBridge
    IContentSiteBridge
Microsoft.UI.Dispatching
 
    DispatcherExitDeferral
    DispatcherQueue
        EnqueueEventLoopExit
        EnsureSystemDispatcherQueue
        FrameworkShutdownCompleted
        FrameworkShutdownStarting
        RunEventLoop
        RunEventLoop
 
    DispatcherQueueController
        ShutdownQueue
 
    DispatcherRunOptions
Microsoft.UI.Input
 
    CharacterReceivedEventArgs
    ContextMenuKeyEventArgs
    FocusChangedEventArgs
    InputActivationListener
        GetForIsland
 
    InputFocusChangedEventArgs
    InputFocusController
    InputKeyboardSource
        CharacterReceived
        ContextMenuKey
        GetCurrentKeyState
        GetForIsland
        GetKeyState
        KeyDown
        KeyUp
        SystemKeyDown
        SystemKeyUp
 
    InputNonClientPointerSource
    InputPointerSource
        GetForIsland
 
    InputPreTranslateKeyboardSource
    KeyEventArgs
    NonClientCaptionTappedEventArgs
    NonClientPointerEventArgs
    NonClientRegionKind
    NonClientRegionsChangedEventArgs
    PhysicalKeyStatus
    VirtualKeyStates
Microsoft.UI.Input.DragDrop
 
    DragDropManager
    DragDropModifiers
    DragInfo
    DragOperation
    DragUIContentMode
    DragUIOverride
    DropOperationTargetRequestedEventArgs
    IDropOperationTarget
Microsoft.UI.Windowing
 
    AppWindow
        AssociateWithDispatcherQueue
        Create
        DispatcherQueue
Microsoft.UI.Xaml
 
    XamlRoot
        ContentIslandEnvironment
Microsoft.UI.Xaml.Automation.Peers
 
    ItemsViewAutomationPeer
Microsoft.UI.Xaml.Controls
 
    AnnotatedScrollBar
    AnnotatedScrollBarDetailLabelRequestedEventArgs
    AnnotatedScrollBarLabel
    AnnotatedScrollBarScrollingEventArgs
    AnnotatedScrollBarScrollingEventKind
    IndexBasedLayoutOrientation
    ItemCollectionTransition
    ItemCollectionTransitionCompletedEventArgs
    ItemCollectionTransitionOperation
    ItemCollectionTransitionProgress
    ItemCollectionTransitionProvider
    ItemCollectionTransitionTriggers
    ItemsRepeater
        ItemTransitionProvider
        ItemTransitionProviderProperty
 
    ItemsView
    ItemsViewItemInvokedEventArgs
    ItemsViewSelectionChangedEventArgs
    ItemsViewSelectionMode
    Layout
        CreateDefaultItemTransitionProvider
        IndexBasedLayoutOrientation
        SetIndexBasedLayoutOrientation
 
    LinedFlowLayout
    LinedFlowLayoutItemCollectionTransitionProvider
    LinedFlowLayoutItemsInfoRequestedEventArgs
    LinedFlowLayoutItemsJustification
    LinedFlowLayoutItemsStretch
    ScrollingAnchorRequestedEventArgs
    ScrollingAnimationMode
    ScrollingBringingIntoViewEventArgs
    ScrollingChainMode
    ScrollingContentOrientation
    ScrollingInputKinds
    ScrollingInteractionState
    ScrollingRailMode
    ScrollingScrollAnimationStartingEventArgs
    ScrollingScrollBarVisibility
    ScrollingScrollCompletedEventArgs
    ScrollingScrollMode
    ScrollingScrollOptions
    ScrollingSnapPointsMode
    ScrollingZoomAnimationStartingEventArgs
    ScrollingZoomCompletedEventArgs
    ScrollingZoomMode
    ScrollingZoomOptions
    ScrollView
    TreeView
        SelectionChanged
 
    TreeViewSelectionChangedEventArgs
    VirtualizingLayoutContext
        VisibleRect
        VisibleRectCore
Microsoft.UI.Xaml.Controls.Primitives
 
    FlyoutBase
        SystemBackdrop
        SystemBackdropProperty
 
    IScrollController
    IScrollControllerPanningInfo
    Popup
        SystemBackdrop
        SystemBackdropProperty
 
    RepeatedScrollSnapPoint
    RepeatedZoomSnapPoint
    ScrollControllerAddScrollVelocityRequestedEventArgs
    ScrollControllerPanRequestedEventArgs
    ScrollControllerScrollByRequestedEventArgs
    ScrollControllerScrollToRequestedEventArgs
    ScrollPresenter
    ScrollSnapPoint
    ScrollSnapPointBase
    ScrollSnapPointsAlignment
    SnapPointBase
    ZoomSnapPoint
    ZoomSnapPointBase
Microsoft.UI.Xaml.Hosting
 
    DesktopWindowXamlSource
    DesktopWindowXamlSourceGotFocusEventArgs
    DesktopWindowXamlSourceTakeFocusRequestedEventArgs
    WindowsXamlManager
    XamlSourceFocusNavigationReason
    XamlSourceFocusNavigationRequest
    XamlSourceFocusNavigationResult

Versão 1.4 Preview 1 (1.4.0-preview1)

Esta é a versão mais recente do canal de preview para a versão 1.4.

Em um SDK do Aplicativo Windows 1.3 existente (do canal estável), você pode atualizar seu pacote Nuget para 1.4.0-preview1 (confira a seção Atualizar um pacote em Instalar e gerenciar pacotes no Visual Studio usando o Gerenciador de Pacotes NuGet).

Para visualizar o runtime atualizado e o MSIX, confira Downloads para o SDK do Aplicativo Windows.

Atualizações de widgets

Três novas interfaces foram adicionadas para os Provedores de Widget implementarem: IWidgetProvider2, IWidgetProviderAnalytics e IWidgetProviderErrors. IWidgetProvider2 permite que os provedores respondam à ação Personalizar invocada pelo usuário, que é idêntica à que está disponível para Widgets primários. As interfaces IWidgetProviderAnalytics e IWidgetProviderErrors são utilizadas pelos provedores para coletar a telemetria de seus widgets; os eventos de falha e a análise sobre os widgets são comunicados aos respectivos provedores de widgets. As classes WidgetCustomizationRequestedArgs, WidgetAnalyticsInfoReportedArgs e WidgetErrorInfoReportedArgs são utilizadas para comunicar informações relevantes para dar suporte a novas funcionalidades.

Novos recursos de todo o WinAppSDK

  • Uma nova classe ThemeSettings que permite que os aplicativos Win32 WinRT detectem quando a configuração de Alto Contraste do sistema foi alterada, de modo semelhante à classe AccessibilitySettings da UWP. Consulte a especificação da API ThemeSettings no GitHub para obter mais informações.
  • Agora. o Popup/FlyoutBase.ShouldConstrainToRootBounds é suportado para permitir que dicas de ferramentas, menus e outros pop-ups se estendam além dos limites da janela principal. O Preview 1 ainda não suporta totalmente ter acrílico ou outros SystemBackdrops em um pop-up/menu suspenso; as APIs adicionais e a implementação para isso serão incluídas na próxima versão 1.4.
  • AccessKeyManager.EnterDisplayMode é um novo método para exibir chaves de acesso para o elemento atualmente focado de uma raiz fornecida. As teclas de acesso estão no "modo de exibição" quando mostram uma dica de tecla para invocar um comando, como pressionar a tecla Alt no Paint para mostrar quais teclas correspondem a quais controles. Esse método permite a inserção programática no modo de exibição.
  • Application.ResourceManagerRequested fornece um mecanismo para fornecer um IResourceManager diferente para resolver URIs de recursos em cenários nos quais o ResourceManager padrão não funciona. Para obter mais informações, confira a especificação Application.ResourceManagerRequested API no GitHub.
  • Estamos introduzindo um novo controle de lista chamado ItemsView e uma classe ItemContainer concreta correspondente. ItemContainer é um contêiner leve com estados de seleção internos e recursos visuais, que pode facilmente encapsular o conteúdo desejado e ser utilizado com ItemsView para um cenário de controle de coleção. ItemsView ainda está marcado como experimental no Preview 1, mas será incluído na próxima versão 1.4.
  • A versão do SDK do WebView2 foi atualizada da 1661.34 para 1823.32.

Novas APIs na versão 1.4.0-preview1

A versão 1.4-preview1 inclui as seguintes novas APIs em comparação com a versão estável 1.3:

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

Versão 1.3 Preview 1 (1.3.0-preview1)

Esta é a versão mais recente do canal de preview para a versão 1.3. Esta versão inclui visualizações de novos recursos no WinAppSDK e várias correções de bugs de desempenho, segurança, acessibilidade e confiabilidade.

Em um SDK do Aplicativo Windows 1.2 existente (do canal estável), você pode atualizar seu pacote Nuget para 1.3.0-preview1 (consulte a seção Atualizar um pacote em Instalar e gerenciar pacotes no Visual Studio usando o Gerenciador de Pacotes NuGet).

Para visualizar o runtime atualizado e o MSIX, consulte Downloads para o SDK do Aplicativo Windows.

APIs de pano de fundo do XAML

Com propriedades internas na janela do XAML, os cenários do Mica tela de fundo acrílico são mais fáceis de usar em seu aplicativo WinUI 3. Consulte a especificação da API Xaml Backdrop no GitHub para obter mais informações sobre a propriedade Window.SystemBackdrop.

public MainWindow()
{
    this.InitializeComponent();

    this.SystemBackdrop = new MicaBackdrop();
}

Window.AppWindow

Substituindo várias linhas de código clichê, agora você pode usar as APIs do AppWindow diretamente de uma Janela por meio de Window.AppWindow. Consulte a especificação da API Window.AppWindow no GitHub para obter informações adicionais sobre a tela de fundo e o uso.

Novos recursos do WinAppSDK

  • ApplicationModel.DynamicDependency: PackageDependency.PackageGraphRevisionId que substitui o MddGetGenerationId preterido.
  • Gerenciador de ambientes: EnvironmentManager.AreChangesTracked para informar se as alterações no gerenciador de ambiente podem ser controladas em seu aplicativo. Consulte as especificações da API de Gerenciamento de Ambiente no GitHub para obter mais informações.
  • MRT Core: um novo evento, Application.ResourceManagerInitializing permite que seu aplicativo forneça sua própria implementação da interface IResourceManager e fornece acesso ao ResourceManager que o WinUI usa para resolver URIs de recursos. Confira a especificação da API IResourceManager no GitHub para obter mais informações.
  • Com o VSIX experimental mais recente, agora você pode converter seu aplicativo entre não empacotado e empacotado por meio do menu do Visual Studio em vez de no arquivo de projeto.
  • Um novo evento, DebugSettings.XamlResourceReferenceFailed agora é gerado quando uma pesquisa Estática/ThemeResource referenciada não pode ser resolvida. Esse evento fornece acesso a um rastreamento que detalha onde a estrutura pesquisou essa chave para permitir depurar melhor as falhas de pesquisa estáticas ThemeResource. Para obter mais informações, confira as especificações da API e os issues 4972, 2350 e 6073 no GitHub.
  • Implantação: para gerenciar e reparar o runtime do aplicativo do Windows, agora DeploymentRepairOptions está disponível como parte do DeploymentManager. Para obter mais informações, confira a seção Reparo das especificações da API de implantação no GitHub.

Problemas conhecidos

  • O controle Pivotal causa uma falha de runtime com um erro de análise XAML. Confira o issue n° 8160 no GitHub para obter mais informações.
  • Quando o menu suspenso DatePicker ou TimePicker é aberto, o aplicativo falha.
  • As APIs WindowsAppRuntime.ReleaseInfo e WindowsAppRuntime.RuntimeInfo APIs introduzidas nas versões 1.3 ainda não são suportadas, pois contêm um bug crítico.

Versão 1.2 Preview 2 (1.2.0-preview2)

Esta é a versão mais recente do canal de preview para a versão 1.2.

Em um SDK do Aplicativo Windows 1.1 existente (do canal estável), você pode atualizar seu pacote Nuget para 1.2.0-preview2 (confira a seção Atualizar um pacote em Instalar e gerenciar pacotes no Visual Studio usando o Gerenciador de Pacotes NuGet).

Para visualizar o runtime atualizado e o MSIX, confira Downloads para o SDK do Aplicativo Windows.

Importante

O Visual Studio 2019 e o .NET 5 não têm mais suporte para a criação de aplicativos C# (confira SDK do Aplicativo Windows 1.2 migrando para o C# WinRT 2.0). Você precisará do Visual Studio 2022 e de uma das seguintes versões do SDK do .NET: 6.0.401 (ou posterior), 6.0.304, 6.0.109.

Para atualizar sua versão do SDK do .NET, instale a última versão do Visual Studio 2022 ou visite Downloads do .NET. Ao atualizar seu pacote NuGet sem a versão necessária do SDK do .NET, você visualizará um erro como: "Esta versão do WindowsAppSDK requer .NET 6+ e WinRT.Runtime.dll versão 2.0 ou superior". Para atualizar o projeto do .NET 5.0 para o .NET 6.0, abra o arquivo de projeto e altere "TargetFramework" para net6.0 e "Versão do sistema operacional de destino" para o valor apropriado (como net6.0-windows10.0.19041.0).

Widgets de terceiros no Windows

O quadro de Widgets foi introduzido pela primeira vez no Windows 11 e estava limitado à exibição de widgets internos. Os widgets são pequenos contêineres de interface do usuário que exibem texto e elementos gráficos no quadro de widgets e estão associados a um aplicativo instalado no dispositivo. Com o SDK do Aplicativo Windows, como desenvolvedores de terceiros, agora você pode criar widgets para seus aplicativos do Win32 empacotados e testá-los localmente no quadro de widgets no Windows 11.

Para obter mais informações sobre widgets, confira Visão geral de widgets.

Para começar a desenvolver os widgets para seu aplicativo, confira os documentos de desenvolvimento de Provedores de serviços do widget e os Conceitos básicos de design de widgets para pré-requisitos, diretrizes e melhores práticas.

Os pré-requisitos para esta versão incluem:

  • Modo de Desenvolvedor habilitado no computador de desenvolvimento.
  • O computador de desenvolvimento está executando uma versão do Windows do Canal do Desenvolvedor do Programa Windows Insider (WIP) com a versão do quadro de widgets 521.20060.1205.0 ou superior.

Limitações conhecidas ao desenvolver widgets

  • Os widgets de terceiros só podem ser testados localmente em dispositivos registrados no WIP para esta versão prévia. No SDK do Aplicativo Windows 1.2.0, os usuários em versões comerciais do Windows podem começar a adquirir Widgets 3P por meio de versões fornecidas do seu aplicativo pela Microsoft Store.
  • Os widgets só podem ser criados para aplicativos do Win32 empacotados. Os widgets para PWA (Aplicativo Web Progressivo) têm suporte planejado como parte do Microsoft Edge 108.

Corte para aplicativos desenvolvidos com o .NET

Os desenvolvedores .NET agora podem publicar seus aplicativos WinAppSDK cortados. Com o CsWinRT 2.0, as projeções C#/WinRT distribuídas no WinAppSDK agora são aparáveis. Publicar seu aplicativo aparado pode reduzir o volume de disco do aplicativo ao remover qualquer código não utilizado dos binários aparados. Os aplicativos também podem observar uma melhoria no desempenho de inicialização. Com um aplicativo "Olá, Mundo" básico, observamos uma melhoria de cerca de 80% no volume de disco e uma melhoria de desempenho de inicialização de aproximadamente 7% quando publicado o formato aparado. Com a Galeria da WinUI, observamos uma melhoria de aproximadamente 45% no volume de disco.

Para obter mais detalhes sobre como habilitar a aparação, limitações de aparação (como reflexão em relação a tipos aparados) e aparar avisos, confira Aparar implantações autônomas e executáveis. Os desenvolvedores devem testar cuidadosamente seus aplicativos após a aparação para garantir que tudo funcione conforme o esperado. Para obter mais informações, confira o issue n.º 2478 no GitHub.

DisplayInformation

Agora, os aplicativos Win32 podem oferecer suporte ao Alto Alcance Dinâmico (HDR) por meio da classe DisplayInformation no WinAppSDK. A classe DisplayInformation permite monitorar informações relacionadas à exibição de um aplicativo. Isso inclui eventos para permitir que os clientes monitorem alterações na exibição do aplicativo que afetam a tela (ou as telas) na qual a exibição reside, bem como alterações em telas que podem afetar a exibição do aplicativo.

Issues corrigidos no WinUI 3

  • O material de pano de fundo acrílico agora tem suporte em aplicativos Windows 10 por meio do DesktopAcrylicController. Para obter mais informações, confira o issue n.º 7112 no GitHub.
  • Corrigido o issue que fazia com que App.UnhandledException falhasse ao ser roteado para o aplicativo. Para obter mais informações, confira o issue n.º 5221 no GitHub.
  • Corrigido o problema que fazia com que os estilos de ListView regredissem e alterassem do WinAppSDK 1.1. Para obter mais informações, confira o issue n.º 7666 no GitHub.

Outras limitações e problemas conhecidos

Importante

Ao referenciar o WinAppSDK 1.2 de um projeto, é possível ver um erro semelhante a: "Downgrade de pacote detectado: Microsoft.Windows.SDK.BuildTools de 10.0.22621.1 para 10.0.22000.194.", que é causado por referências incompatíveis ao pacote do projeto de aplicativo e ao pacote WinAppSDK. Para resolver isso, atualize a referência no projeto para uma versão mais recente e compatível do Microsoft.Windows.SDK.BuildTools ou simplesmente remova a referência do deu projeto. Se você removê-la do seu projeto, uma versão compatível será implicitamente referenciada pelo pacote WinAppSDK.

  • No momento, a criação com o Arm64 Visual Studio não tem suporte.
  • Os padrões de inicializador automático da versão gratuita do WinRT desencaixada e com Bootstrapper são agora definidos apenas para projetos que produzem um executável (OutputType=Exe ou WinExe). Isso impede a adição de inicializadores automáticos em DLLs de biblioteca de classes e outros não executáveis por padrão.
    • Caso precise de um inicializador automático em um não executável (por exemplo, uma DLL de teste carregada por um executável genérico que não inicializa o Bootstrapper), você poderá habilitar explicitamente um inicializador automático em seu projeto por meio de <WindowsAppSdkBootstrapInitialize>true</WindowsAppSdkBootstrapInitialize> ou <WindowsAppSdkUndockedRegFreeWinRTInitialize>true</WindowsAppSdkUndockedRegFreeWinRTInitialize>.
  • As APIs de informações de versão (ReleaseInfo e RuntimeInfo) podem ser chamadas, mas retornam a versão 0 (não as informações de versão reais).

Versão 1.2 Preview 1 (1.2.0-preview1)

Em um SDK do Aplicativo Windows 1.1 existente (do canal estável), você pode atualizar seu pacote Nuget para 1.2.0-preview1 (confira a seção Atualizar um pacote em Instalar e gerenciar pacotes no Visual Studio usando o Gerenciador de Pacotes NuGet).

Para visualizar o runtime atualizado e o MSIX, confira Downloads para o SDK do Aplicativo Windows.

WinUI 3

Os aplicativos da WinUI 3 podem reproduzir áudio e vídeo com os controles de reprodução de mídia MediaPlayerElement e MediaTransportControls. Para obter mais informações sobre como e quando usar os controles de mídia, confira Players de mídia.

A WinUI 3 foi atualizada com os controles, estilos e comportamentos mais recentes da WinUI 2.8. Essas atualizações incluem a adição do controle InfoBadge, melhorias na acessibilidade e no modo de alto contraste, bem como correções de bugs nos controles. Para obter mais detalhes, confira as notas de versão para a WinUI 2.7 e WinUI 2.8.

Problema conhecido

ListView estilos regredidos e alterados do WinAppSDK 1.1.

Notificações

AppNotificationBuilder introduzido como uma alternativa ao conteúdo XML para criar e definir notificações de aplicativo.

Para obter informações de uso, confira a especificação do AppNotificationBuilder no GitHub.

Consulte também Início Rápido: notificações de aplicativo no SDK do Aplicativo Windows para obter um exemplo de como criar um aplicativo da área de trabalho do Windows que envia e recebe notificações de aplicativo local.

Alterações da falha

Para notificações por push, ao fazer uma chamada de solicitação de canal, os aplicativos precisarão usar a ID de Objeto do Azure em vez da ID do Aplicativo do Azure. Confira Início Rápido: notificação por push no SDK do Aplicativo Windows para obter detalhes sobre como localizar sua ID de Objeto do Azure.

Problema corrigido

O PushNotificationManager.IsSupported executará uma verificação para o modo elevado. Ele retornará false se o aplicativo for elevado.

Limitações conhecidas (Notificações)

Windowing

A personalização completa da barra de título agora está disponível no Windows 10, versão 1809 e posterior por meio da classe AppWindowTitleBar. Defina o AppWindowTitleBar.ExtendsContentIntoTitleBar como true para estender o conteúdo na área da barra de título e SetDragRectangles para definir regiões de arrastar (além de outras opções de personalização).

Caso esteja usando a propriedade AppWindowTitleBar.IsCustomizationSupported para verificar se você pode chamar as APIs AppWindowTitleBar, ela agora retornará true em versões do SDK do Aplicativo Windows para Windows 10 com suporte (1809 e posteriores).

Limitações conhecidas (janelas)

Não há suporte para personalizações simples da barra de título no Windows 10. Elas incluem Cor da tela de fundo, Cor da tela de fundo inativa, Cor do primeiro plano, Cor do primeiro plano inativo e Opções de exibição de ícone. Se chamar essas propriedades, elas serão ignoradas silenciosamente. Todas as outras APIs AppWindowTitleBar funcionam no Windows 10, versão 1809 e posteriores. Para as APIs de cores do botão de legenda (entre outras) e Altura, ExtendsContentIntoTitleBar devem ser definidas como true, caso contrário, elas também serão ignoradas silenciosamente.

Controle de acesso

Foi apresentado o security.accesscontrol.h com a função GetSecurityDescriptorForAppContainerNames para facilitar e simplificar o compartilhamento de objetos nomeados entre processos empacotados e as APIs gerais do Win32. Esse método usa uma lista de PFNs (Nomes de Família de Pacotes) e máscaras de acesso e retorna um descritor de segurança. Para obter mais informações, confira a especificação do GetSecurityDescriptorForAppContainerNames no GitHub.

Outras limitações e problemas conhecidos

  • Não há suporte para PublishSingleFile do .NET.

Versão 1.1 Preview 3 (1.1.0-preview3)

Esta é a versão mais recente do canal de preview para a versão 1.1. Ela oferece suporte a todos os recursos do canal de preview (confira Recursos disponíveis por canal de lançamento).

Em um aplicativo existente que usa o SDK do Aplicativo Windows 1.0, você pode atualizar seu pacote Nuget para 1.1.0-preview3 (confira a seção Atualizar um pacote em Instalar e gerenciar pacotes no Visual Studio usando o Gerenciador de Pacotes NuGet). Além disso, confira Downloads do SDK do Aplicativo Windows para obter o runtime atualizado e o MSIX.

Observação

Para desenvolvedores do C#, uma das seguintes versões do SDK do .NET (ou posterior) é necessária: 6.0.202, 6.0.104, 5.0.407 e 5.0.213. Para atualizar sua versão do SDK do .NET, visite os Downloads do .NET ou atualize para a última versão do Visual Studio. Sem a versão necessária do SDK do .NET, ao atualizar o pacote NuGet, você visualizará um erro como: "Esta versão do WindowsAppSDK requer o WinRT.Runtime.dll versão 1.6 ou superior".

Além de todos os recursos do Preview 2, as seções a seguir descrevem recursos novos e atualizados, limitações e problemas conhecidos desta versão.

WinUI 3

Mica e plano de fundo acrílico agora estão disponíveis para aplicativos da WinUI 3.

Para obter mais informações sobre esses materiais, confira os Materiais em Windows 11. Confira nosso código de exemplo para aplicar Mica em aplicativos C++ Usando um SystemBackdropController with WinUI 3 XAML e em aplicativos C# no GitHub como parte da Galeria de controles WinUI.

Notificações

Problemas corrigidos:

  • Na 1.1.0-preview1 e 1.1.0-preview2, alguns aplicativos não empacotados terão visto seus ícones de aplicativo copiados incorretamente para AppData\LocalMicrosoftWindowsAppSDK. Para esta versão, eles serão copiados para AppData\Local\Microsoft\WindowsAppSDK. Para evitar o vazamento de ícones, você deve excluir manualmente o ícone do aplicativo no caminho incorreto após atualizar para a visualização 1.1.0-preview3.
  • O ícone do aplicativo e a recuperação do nome de exibição do aplicativo para notificações do aplicativo por meio de Atalhos agora são suportados. Este ícone de aplicativo será priorizado sobre qualquer ícone especificado em arquivos de recursos.
  • O suporte para notificações por push para aplicativos não empacotados foi restaurado (confira Limitações para exceções observadas). Introduzimos a API PushNotificationManager::IsSupported para verificar se seu aplicativo oferece suporte a notificações por push.

Limitações:

  • Não há suporte para um aplicativo não empacotado elevado. O PushNotificationManager::IsSupported não executará uma verificação para o modo elevado. No entanto, estamos trabalhando para oferecer suporte a isso em uma versão futura.

Empacotamento MSIX

Aprimoramos o MSIX adicionando funcionalidades novas e ampliando as existentes por meio das categorias de extensão:

  • windows.appExecutionAlias
  • windows.customDesktopEventLog
  • windows.dataShortcuts
  • windows.fileTypeAssociation
  • windows.fileTypeAssociation.iconHandler
  • windows.folder
  • windows.shortcut

Eles exigem que o pacote de estrutura de SDK do Aplicativo Windows seja instalado. Confira Downloads do SDK do Aplicativo Windows para instalar o runtime.

Gerenciador de ambiente

Conjunto de APIs que permite aos desenvolvedores adicionar, remover e modificar variáveis de ambiente sem precisar usar diretamente a API do Registro.

Esclarecimento da 1.1 Preview 1: A remoção automática de qualquer alteração de variável de ambiente quando um aplicativo que usou o gerenciador de ambiente é desinstalado só está disponível para aplicativos empacotados. Além disso, reverter alterações de variáveis de ambiente requer a instalação do pacote de estrutura do SDK do Aplicativo Windows, confira Downloads do SDK do Aplicativo Windows para o runtime.

Outras limitações conhecidas

Regressões do 1.1 Preview 2:

  • Para aplicativos .NET que usam APIs MRT Core e aplicativos WinUI que não são implantados com MSIX de projeto único:
    • Os arquivos RESW e de imagem que foram adicionados ao projeto como Itens Existentes e anteriormente incluídos automaticamente no PRIResource e no Content ItemGroups, respectivamente, não serão incluídos nesses ItemGroups. Como resultado, esses recursos não serão indexados durante a geração do PRI, portanto, não estarão disponíveis durante o runtime.
      • Solução alternativa: inclua manualmente os recursos no arquivo de projeto e remova-os do None ItemGroup.
      • Solução alternativa: quando disponível, atualize o SDK do .NET de seus aplicativos para 6.0.300. Consulte Requisitos de versão do SDK do .NET para obter informações adicionais.
  • Para aplicativos .NET que não são implantados com MSIX de projeto único:
    • Se um arquivo for adicionado ao Content ItemGroup duas vezes ou mais, haverá um erro de build.
      • Solução alternativa: exclua a(s) inclusão(ões) duplicata(s) ou defina EnableDefaultContentItems como false no arquivo de projeto.

Ambas as regressões serão restauradas na próxima versão estável.

Versão 1.1 Preview 2 (1.1.0-preview2)

Esta é a segunda versão do canal de preview para a versão 1.1. Ela oferece suporte a todos os recursos do canal de preview (confira Recursos disponíveis por canal de lançamento).

Em um aplicativo existente que usa o SDK do Aplicativo Windows 1.0, você pode atualizar seu pacote Nuget para 1.1.0-preview2 (confira a seção Atualizar um pacote em Instalar e gerenciar pacotes no Visual Studio usando o Gerenciador de Pacotes NuGet). Além disso, confira Downloads do SDK do Aplicativo Windows para obter o runtime atualizado e o MSIX.

Observação

Para desenvolvedores do C#, uma das seguintes versões do SDK do .NET (ou posterior) é necessária: 6.0.202, 6.0.104, 5.0.407 e 5.0.213. Para atualizar sua versão do SDK do .NET, visite os Downloads do .NET ou atualize para a última versão do Visual Studio. Sem a versão necessária do SDK do .NET, ao atualizar o pacote NuGet, você visualizará um erro como: "Esta versão do WindowsAppSDK requer o WinRT.Runtime.dll versão 1.6 ou superior".

Além de todos os recursos do Preview 1, as seções a seguir descrevem recursos novos e atualizados, limitações e problemas conhecidos desta versão.

Notificações

Problemas corrigidos:

  • Um aplicativo sem identificador de pacote enviando notificações agora verá seu ícone de aplicativo na notificação se o ícone fizer parte do recurso do aplicativo. Se o recurso do aplicativo não tiver ícone, o ícone do aplicativo padrão do Windows será usado.
  • Um aplicativo WinUI 3 que não está em execução agora pode ser ativado em segundo plano por meio de uma notificação.

Regressão da 1.1 Preview 1: suporte a notificações por push para aplicativos não empacotados. Espera-se que seja restaurado na próxima versão.

Limitações conhecidas:

  • Introduzimos a API PushNotificationManager::IsSupported para verificar se os aplicativos independentes oferecem suporte a notificações por push. No entanto, essa API ainda não está funcionando como esperado, portanto, fique de olho na próxima versão de preview para obter suporte total da API IsSupported.
  • Alguns aplicativos não empacotados verão seus ícones de aplicativo copiados incorretamente para AppData\LocalMicrosoftWindowsAppSDK. Para a próxima versão, eles serão copiados para AppData\Local\Microsoft\WindowsAppSDK. Para evitar o vazamento de ícones, o desenvolvedor deve excluir manualmente o ícone do aplicativo no caminho incorreto após a atualização para a próxima versão.
  • Não há suporte para a recuperação de ícone e nome de exibição do aplicativo para notificações via Atalhos. Mas estamos trabalhando para apoiar isso em um lançamento futuro.

Implantação

Novos recursos:

Limitações conhecidas:

  • Há suporte para a implantação independente apenas no Windows 10, 1903 e posterior.

Janelas

Para facilitar o acesso de programação à funcionalidade implementada no USER32.dll (confira Windows e mensagens), esta versão apresenta mais dessa funcionalidade no próprio AppWindow.

Novos recursos:

  • Os aplicativos com janelas existentes têm mais controle sobre como uma janela é mostrada, chamando AppWindow.ShowOnceWithRequestedStartupState— o equivalente a ShowWindow(SW_SHOWDEFAULT).
  • Os aplicativos podem mostrar, minimizar ou restaurar uma janela e especificar se a janela deve ser ativada ou não no momento em que a chamada é feita.
  • Os aplicativos agora podem definir o tamanho da área de cliente de uma janela em coordenadas Win32.
  • Adicionamos APIs para dar suporte ao gerenciamento de ordens z de janelas.
  • Os aplicativos que desenham barras de título personalizadas com AppWindowTitleBar.ExtendsContentIntoTitleBar podem definir uma opção PreferredTitleBarHeight. Você pode escolher entre uma barra de título de altura standard ou uma barra de título alta que oferece mais espaço para conteúdo interativo. Confira Barra de título nas diretrizes do Fluent Design para obter conselhos sobre quando usar uma barra de título alta.

Limitações conhecidas:

  • O suporte à barra de título alta está disponível apenas no Windows 11. Estamos trabalhando para reduzir essa API de versão anterior junto com outras APIs personalizadas da barra de título.

WinUI 3

Problemas corrigidos:

  • Corrigido o problema que fazia com que aplicativos C# com WebView2 falhassem na inicialização quando o CRT (Runtime do C/C++) não estava instalado atualizando o SDK do WebView2 de 1020.46 para 1185.39.
  • Corrigido o problema que fazia com que alguns cantos arredondados mostrassem um gradiente quando deveriam ser uma cor sólida. Para obter mais informações, confira os issues n.º 6076 e n.º 6194 no GitHub.
  • Corrigido o problema em que os estilos atualizados estavam ausentes de generic.xaml.
  • Correção do problema de ciclo de layout que fazia com que um aplicativo falhasse ao rolar até o final de um ListView. Para obter mais informações, confira o issue n.º 6218 no GitHub.

Desempenho

Os aplicativos C# têm várias melhorias de desempenho. Confira as notas sobre a versão C#/WinRT 1.6.1 para obter mais detalhes.

Versão 1.1 Preview 1 (1.1.0-preview1)

Esta é a primeira versão do canal de preview para a versão 1.1. Ela oferece suporte a todos os recursos do canal de preview (confira Recursos disponíveis por canal de lançamento).

Em um aplicativo existente que usa o SDK do Aplicativo Windows 1.0, você pode atualizar seu pacote Nuget para 1.1.0-preview1 (confira a seção Atualizar um pacote em Instalar e gerenciar pacotes no Visual Studio usando o Gerenciador de Pacotes NuGet). Além disso, confira Downloads do SDK do Aplicativo Windows para obter o runtime atualizado e o MSIX.

As seções a seguir descrevem os recursos novos e atualizados, as limitações e os problemas conhecidos para essa versão.

WinUI 3

Issue conhecido: os usuários não conseguem descartar um elemento quando o recurso arrastar e soltar está habilitado.

Suporte elevado (admin)

Usando o SDK do Aplicativo Windows 1.1 Preview 1, os aplicativos (incluindo o WinUI 3) poderão ser executados com privilégios elevados.

Limitações importantes

  • No momento, disponível apenas no Windows 11. Mas estamos avaliando reduzir esse nível de suporte em uma versão posterior.

Problemas conhecidos

  • Os aplicativos WinUI 3 travam ao arrastar um elemento durante uma interação de arrastar e soltar.

Implantação autocontida

O SDK do Aplicativo Windows 1.1 apresentará suporte para implantação independente. Nossa visão geral da implantação detalha as diferenças entre a implantação dependente da estrutura e a implantação independente e como começar.

Problemas conhecidos:

  • Um aplicativo C++ empacotado precisa adicionar o abaixo à parte inferior de seu arquivo de projeto para contornar um bug no arquivo autocontido .targets que remove referências de estrutura para VCLibs:

    <PropertyGroup>
        <IncludeGetResolvedSDKReferences>true</IncludeGetResolvedSDKReferences>
    </PropertyGroup>
    
    <Target Name="_RemoveFrameworkReferences"
        BeforeTargets="_ConvertItems;_CalculateInputsForGenerateCurrentProjectAppxManifest">
        <ItemGroup>
            <FrameworkSdkReference Remove="@(FrameworkSdkReference)" Condition="'%(FrameworkSdkReference.SDKName)' == 'Microsoft.WindowsAppRuntime.1.1-preview1'" />
        </ItemGroup>
    </Target>
    
  • Com suporte apenas no Windows 10, 1903 e posterior.

Notificações

Os desenvolvedores de aplicativos empacotados (incluindo empacotados com localização externa) e aplicativos não empacotados agora podem enviar notificações do Windows.

Novos recursos:

  • Suporte para notificações de aplicativo para aplicativos empacotados e não empacotados. Detalhes completos sobre o GitHub
    • Os desenvolvedores podem enviar notificações de aplicativo, também conhecidas como notificações do sistema, localmente ou de seu próprio serviço de nuvem.
  • Suporte para notificação por push para aplicativos empacotados e não empacotados. Detalhes completos sobre o GitHub
    • Os desenvolvedores podem enviar notificações brutas ou notificações de aplicativos do seu próprio serviço de nuvem.

Limitações:

  • Os aplicativos publicados como independentes podem não ter suporte a notificações por push. Fique de olho na próxima versão de preview de uma API IsSupported para verificar se há suporte a notificações por push.
  • Os aplicativos que não são empacotados enviando notificações de aplicativo não verão o ícone do aplicativo na notificação do aplicativo, a menos que sejam aplicativos de console. Os aplicativos de console que não são empacotados devem seguir os padrões mostrados no exemplo ToastNotificationsDemoApp.
  • O runtime do SDK do Aplicativo Windows deve ser instalado para oferecer suporte a notificações por push, confira Downloads do SDK do Aplicativo Windows para o instalador.
  • Um aplicativo WinUI 3 que não está em execução não pode ser ativado em segundo plano por meio de uma notificação. Mas estamos trabalhando para apoiar isso em um lançamento futuro.

Gerenciador de ambiente

Conjunto de APIs que permite aos desenvolvedores adicionar, remover e modificar variáveis de ambiente sem precisar usar diretamente a API do Registro.

Novos recursos

  • Fornece a remoção automática de quaisquer alterações de variáveis de ambiente quando um aplicativo que usava o gerenciador de ambiente é desinstalado.

Limitações

  • Atualmente indisponível em aplicativos C#. Mas estamos avaliando trazer esse recurso para aplicativos C# em uma versão posterior.

Outras limitações e problemas conhecidos

  • Se você estiver usando C# com 1.1.0 Preview 1, deverá usar uma das seguintes versões do SDK do .NET no mínimo: .NET SDK 6.0.201, 6.0.103, 5.0.212 ou 5.0.406. Para atualizar seu SDK do .NET, você pode atualizar para a última versão do Visual Studio ou visitar Download .NET.

Versão 1.0 Preview 3 (1.0.0-preview3)

O Preview 3 é a versão mais recente do canal de preview da versão 1.0 do SDK do Aplicativo Windows. O Preview 3 suporta todos os recursos do canal de visualização.

Fazer download de 1.0 Preview 3 extensões do Visual Studio (VSIX)

Observação

Caso tenha o VSIX (extensões de SDK do Aplicativo Windows do Visual Studio) já instalada, desinstale-as antes de instalar uma nova versão. Para obter instruções, confira Gerenciar extensões para o Visual Studio.

Na tabela abaixo, você pode fazer download das extensões do Visual Studio (VSIX) para a versão 1.0 Preview 3. Para obter todas as versões, confira Downloads para o SDK do Aplicativo Windows. Se você ainda não tiver feito isso, comece configurando seu ambiente de desenvolvimento, usando as etapas em Ferramentas de instalação para o SDK do Aplicativo Windows.

As extensões abaixo são personalizadas para sua linguagem de programação e versão do Visual Studio.

1.0 Preview 3 downloads Descrição
Extensão do Visual Studio 2019 para C# Crie aplicativos C# com a extensão do SDK do Aplicativo Windows Visual Studio 2019.
Extensão do Visual Studio 2019 para C++ Crie aplicativos C++ com a extensão do SDK do Aplicativo Windows Visual Studio 2019.
Extensão do Visual Studio 2022 para C# Crie aplicativos C# com a extensão do SDK do Aplicativo Windows Visual Studio 2022.
Extensão do Visual Studio 2022 para C++ Crie aplicativos C++ com a extensão do SDK do Aplicativo Windows Visual Studio 2022.
O .exe instalador e os pacotes MSIX Implante o SDK do Aplicativo Windows com seu aplicativo usando o instalador .exe e os pacotes MSIX.

As seções a seguir descrevem recursos novos e atualizados, limitações e issues conhecidos para 1.0 Preview 3.

WinUI 3

Agora oferecemos suporte à implantação de aplicativos WinUI 3 sem empacotamento MSIX. Consulte Criar seu primeiro projeto WinUI 3 para configurar seu aplicativo WinUI 3 para oferecer suporte à implantação não empacotada.

Limitações importantes

  • Aplicativos WinUI 3 não empacotados são suportados somente nas versões 1909 e posteriores do Windows.
  • Aplicativos WinUI 3 não empacotados são suportados em x86 e x64, e o suporte a arm64 será adicionado na próxima versão estável.
  • Ferramentas de empacotamento MSIX de projeto único para o Visual Studio 2019 ou o Visual Studio 2022 são necessárias para aplicativos não empacotados.
  • Em um aplicativo não empacotado, você pode receber uma solicitação para instalar o .NET 3.5; se você fizer isso, então você pode ignorá-lo.
  • Algumas APIs não são suportadas atualmente em aplicativos não empacotados. Nosso objetivo é corrigir isso na próxima versão estável. Alguns exemplos:
  • Os controles ListView, CalendarView e GridView estão usando os estilos incorretos, e pretendemos corrigir isso na próxima versão estável.

Para obter mais informações ou para começar a desenvolver com o WinUI 3, confira:

Outras limitações e problemas conhecidos

  • Não há suporte para aplicativos não empacotados no Windows 10 versão 1809. Nosso objetivo é corrigir isso na próxima versão no canal estável.

  • O aplicativo MSIX de projeto único em C# não será compilado se as Ferramentas UWP do C++ não estiverem instaladas. Se você tiver um projeto MSIX de projeto único em C#, precisará instalar o componente opcional Ferramentas C++ (v14x) da Plataforma Universal do Windows.

  • Esta versão apresenta os modelos de projeto Aplicativo em Branco, Empacotado (WinUI 3 na Área de Trabalho) para C# e C++. Esses modelos permitem que você crie seu aplicativo em um pacote MSIX sem o uso de um projeto de empacotamento separado (confira Empacotar seu aplicativo usando MSIX de projeto único). Esses modelos têm alguns issues conhecidos nesta versão:

    • Item de menu Publicar ausente até reiniciar o Visual Studio. Ao criar um aplicativo no Visual Studio 2019 e no Visual Studio 2022 usando o modelo de projeto Aplicativo em branco empacotado (WinUI 3 na Área de Trabalho), o comando para publicar o projeto não aparece no menu até você fechar e reabrir o Visual Estúdio.

    • Erro ao adicionar referências de projeto de biblioteca estática/dinâmica C++ a aplicativos C++ usando o Empacotamento MSIX de projeto único. Visual Studio exibe um erro que o projeto não pode ser adicionado como referência porque os tipos de projeto não são compatíveis.

    • Erro ao fazer referência a um controle de usuário personalizado em um projeto de biblioteca de classes. O aplicativo falhará com o erro de que o sistema não consegue encontrar o caminho especificado.

    • Modelo C# ou C++ para Visual Studio 2019. Ao tentar criar o projeto, você encontrará o erro "O projeto não sabe como executar o nome do projeto de perfil". Para resolver esse Issue, instale a extensão de ferramentas de empacotamento MSIX de projeto único.

    • Modelo C# para Visual Studio 2019 e Visual Studio 2022. No Visual Studio, quando você inicia a depuração ou inicia sem depuração, se seu aplicativo não for implantado e executado (e não houver feedback do Visual Studio), clique no nó do projeto no Gerenciador de Soluções para selecioná-lo e tente novamente.

    • Modelo C# para Visual Studio 2019 e Visual Studio 2022. Você encontrará o seguinte erro ao tentar executar ou depurar seu projeto no computador de desenvolvimento: "O projeto precisa ser implantado antes de podermos depurar. Habilite Implantar no Configuration Manager." Para resolver esse issue, habilite a implantação para seu projeto no Configuration Manager. Confira Criar seu primeiro projeto da WinUI 3 para obter instruções.

    • Modelo C++ para Visual Studio 2022 versão 17.0 versões até Preview 4. Você encontrará o seguinte erro na primeira vez que tentar executar seu projeto: "Houve erros de implantação". Para resolver esse issue, execute ou implante seu projeto uma segunda vez. Esse issue será corrigido no Visual Studio 2022 versão 17.0 Preview 7.

  • Sem suporte para qualquer configuração de build de CPU: ao adicionar o SDK do Aplicativo Windows a um aplicativo ou componente do .NET existente que dê suporte a Qualquer CPU, especifique a arquitetura desejada: x86, x64 ou arm64.

  • Os projetos C# que usam a versão 1.0 do Preview 3 devem usar o seguinte SDK do .NET: SDK do .NET 6 ou posterior (confira Fazer download do .NET e o .NET 5 chegará ao fim do suporte em 10 de maio de 2022).

  • Uma alternativa ao DispatcherQueue.TryEnqueue (para retomar a execução no thread da fila do dispatcher) é usar a função auxiliar resume_foreground na WIL (Biblioteca de Implementação do Windows):

    1. Adicione uma referência ao seu projeto ao pacote NuGet Microsoft.Windows.ImplementationLibrary.
    2. Adicione #include <wil/cppwinrt_helpers.h> ao seu pch.h.
    3. Adicione #include <winrt/Microsoft.UI.Dispatching.h> ao seu pch.h.
    4. Agora co_await wil::resume_foreground(your_dispatcherqueue);.

Issue importante que afeta o 1.0 Preview 1 e o Preview 2

A versão 1.0 Preview 1 e Preview 2 do SDK do Aplicativo Windows inclui um mecanismo para limpar quaisquer alterações de variáveis de ambiente feitas por um aplicativo empacotado quando esse aplicativo é desinstalado. Esse recurso está em um estado experimental e a primeira versão inclui um bug conhecido que pode corromper a variável de ambiente PATH do sistema.

A Preview 1 e a Preview 2 corrompem qualquer variável de ambiente PATH que contenha o caractere de expansão %. Isso acontece sempre que qualquer aplicativo empacotado é desinstalado, independentemente de esse aplicativo usar o SDK do Aplicativo Windows.

Confira também o issue de dano de variável de ambiente PATH.

Detalhes

A entrada PATH do sistema é armazenada no valor Path na seguinte chave no Registro do Windows:

Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment

Se você iniciar o Editor do Registro (regedit.exe), poderá copiar e colar o caminho acima na barra de trilha (imediatamente abaixo da barra de menus) e pressionar Enter para localizar a chave.

O valor Path dessa chave deve ser do tipo REG_EXPAND_SZ, mas o bug o altera para REG_SZ. E isso torna a variável de ambiente PATH do sistema inutilizável se ela contiver o caractere de expansão da variável %.

Versões afetadas

Mitigação

Para colocar suo computador de volta em um bom estado, execute as seguintes etapas:

  1. Verifique se o PATH no Registro está corrompido e, em caso afirmativo, redefina-o executando o script abaixo.

    Você pode realizar a etapa 1 com o seguinte script do Windows PowerShell (o PowerShell Core não funcionará). Execute-o elevado.

    # This script must be run from an elevated Windows PowerShell
    # window (right-click Windows PowerShell in the Start menu,
    # and select Run as Administrator).
    
    # If the PATH in the Registry has been set to REG_SZ, then delete
    # it, and recreate it as REG_EXPAND_SZ.
    
    $EnvPath = 'Registry::HKLM\System\CurrentControlSet\Control\Session Manager\Environment'
    $Environment=Get-Item $EnvPath
    $PathKind = $Environment.GetValueKind('Path')
    
    if ($PathKind -ne 'ExpandString') {
      $Path = $Environment.GetValue('Path')
      Remove-ItemProperty $EnvPath -Name Path
      New-ItemProperty $EnvPath -Name Path -PropertyType ExpandString -Value $Path
    }
    
  2. Desinstale todos os aplicativos que usam o SDK do Aplicativo Windows 1.0 Preview1 ou Preview2 (confira o script abaixo).

  3. Desinstale os pacotes do SDK do Aplicativo Windows 1.0 Preview1/Preview2, incluindo o pacote que contém o bug (confira o script abaixo).

    Você pode realizar as etapas 2 e 3 com o seguinte script do Windows PowerShell (o PowerShell Core não funcionará). Execute-o elevado.

    # This script must be run from an elevated Windows PowerShell
    # window (right-click Windows PowerShell in the Start menu,
    # and select Run as Administrator).
    
    # Remove the Windows App SDK 1.0 Preview1/2, and all apps that use it.
    
    $winappsdk = "Microsoft.WindowsAppRuntime.1.0-preview*"
    Get-AppxPackage | Where-Object { $_.Dependencies -like $winappsdk } | Remove-AppxPackage
    Get-AppxPackage $winappsdk | Remove-AppxPackage
    

Correção no SDK do Aplicativo Windows 1.0 Preview 3

O recurso que faz com que a variável de ambiente PATH seja corrompida será removido na próxima versão do SDK do Aplicativo Windows 1.0 Preview 3. Ele pode ser reintroduzido em uma data posterior, quando todos os bugs tiverem sido corrigidos e completamente testados.

Recomendamos o uso da versão 1.0 Preview 3.

Versão 1.0 Preview 2 (1.0.0-preview2)

Importante

As versões 1.0 Preview 1 e Preview 2 contêm um bug crítico. Se você já instalou uma dessas visualizações, confira como resolver o issue. Em vez disso, recomendamos usar a versão 1.0 Preview 3.

Esta é a versão mais recente do canal de preview para a versão 1.0. Ela oferece suporte a todos os recursos do canal de preview.

As seções a seguir descrevem os recursos novos e atualizados, as limitações e os problemas conhecidos para essa versão.

WinUI 3

Novas atualizações:

  • Os controles foram atualizados para refletir os estilos mais recentes do Windows do WinUI 2.6.
  • Há suporte para o MSIX de projeto único.
  • O pacote WinUI 3 agora pode ser direcionado para o build 17763 e posterior. Confira o issue n° 921 para obter mais informações.
  • Há suporte para a barra de ferramentas no aplicativo. No entanto, a barra de ferramentas no aplicativo e o suporte existente à Recarga Dinâmica/Live Visual Tree exigem a próxima versão do Visual Studio 17.0 Preview 5, disponível no final de outubro.

Bug corrigido: o texto do WebView2Runtime agora está localizado.

Para obter mais informações ou para começar a desenvolver com o WinUI 3, confira:

Windowing

Esta versão introduz atualizações para a classe AppWindow. Não há novos recursos importantes adicionados nesta versão, mas há alterações em nomes de métodos, propriedades e alguns valores de retorno foram removidos. Confira a documentação e os exemplos para obter atualizações detalhadas. Se você trabalhou com o AppWindow nas versões 1.0 Experimental ou 1.0 Preview 1, espere algumas alterações no seu código.

Novas atualizações:

  • A classe AppWindowConfiguration foi removida. As propriedades dessa classe agora estão disponíveis no próprio AppWindow ou nas classes Apresentador.
  • A maioria dos valores de retorno bool para os métodos de API do WinRT neste espaço foi removida e agora é void, pois esses métodos sempre teriam êxito.
  • As chamadas ImportDll do C# não são mais necessárias para GetWindowIdFromWindow e GetWindowFromWindowId. Em vez disso, use os métodos wrapper .NET disponíveis na classe Microsoft.UI.Win32Interop.

Limitações importantes:

  • O SDK do Aplicativo Windows atualmente não fornece métodos para anexar o conteúdo da estrutura da IU a um AppWindow; você está limitado a usar os métodos de acesso de interoperabilidade HWND.
  • A personalização da barra de título da janela funciona apenas no Windows 11. Use o método IsCustomizationSupported para verificar o suporte ao recurso de personalização da barra de título. Pretendemos reduzir essa funcionalidade.

Para saber mais, confira Gerenciar janelas de aplicativos.

Entrada

Novas atualizações:

  • Suporte aprimorado para entrada de touchpad de precisão.

Limitações importantes:

  • Todas as funções de fábrica estáticas do PointerPoint foram removidas: GetCurrentPoint, GetCurrentPointTransformed, GetIntermediatePoints e GetIntermediatePointsTransformed.
  • O SDK do Aplicativo Windows não oferece suporte à recuperação de objetos PointerPoint com IDs de ponteiro. Em vez disso, use a função membro PointerPointGetTransformedPoint para recuperar uma versão transformada de um objeto PointerPoint existente. Para pontos intermediários, use as funções membro PointerEventArgsGetIntermediatePoints e GetTransformedIntermediatePoints. Confira a documentação para obter mais detalhes.

MRT Core

Novas atualizações:

  • Os desenvolvedores de aplicativos agora podem recusar a indexação de um arquivo de imagem ou de um arquivo RESW no arquivo PRI em projetos .NET. Confira o issue n.º 980 para obter mais informações.

Limitações importantes:

  • Em projetos do .NET, os arquivos de recurso copiados colados na pasta do projeto não serão indexados em F5 se o aplicativo já tiver sido criado. Como solução alternativa, recompile o aplicativo. Confira o issue n.º 1503 para obter mais informações].
  • Em projetos .NET, os arquivos de recursos existentes adicionados de uma pasta externa não são indexados sem a configuração manual da Ação de build. Para contornar esse issue, defina a ação de build no Visual Studio: conteúdo para arquivos de imagem e PRIResource para arquivos RESW. Confira o issue n.º 1504 para obter mais informações.

Implantação para aplicativos não empacotados

Novos recursos:

  • O Windows App SDK 1.0 Preview 2 apresenta um wrapper .NET para a API de bootstrapper (confira Usar o runtime do SDK do Aplicativo Windows para aplicativos empacotados com localização externa ou não empacotados). A API do bootstrapper é um conjunto de funções C/C++ nativas que os aplicativos não empacotados devem usar para assumir dinamicamente uma dependência do pacote de estrutura do SDK do Aplicativo Windows em tempo de execução. O wrapper .NET fornece uma maneira mais fácil de chamar a API de bootstrapper de aplicativos .NET, incluindo aplicativos Windows Forms e WPF. O wrapper .NET para a API bootstrapper está disponível no assembly Microsoft.WindowsAppRuntime.Bootstrap.Net.dll que é local para seu projeto de aplicativo. Para obter mais informações sobre o wrapper do .NET, confira Biblioteca de wrapper do .NET.
  • Os aplicativos empacotados agora podem usar a API de implantação para obter os pacotes MSIX principal e singleton instalados no computador. Os pacotes main e singleton fazem parte do pacote de estrutura que é instalado com o aplicativo, mas devido a uma limitação com o modelo de aplicativo do Windows, os aplicativos empacotados precisarão executar essa etapa adicional para obter esses pacotes instalados. Para obter mais informações sobre como funciona a API de implantação, confira a Guia de implantação do SDK do Aplicativo Windows para aplicativos empacotados dependentes de estrutura.

Limitações importantes:

  • O wrapper do .NET para a API de Bootstrapper destina-se apenas a ser usado por aplicativos do .NET não empacotados para simplificar o acesso ao SDK do Aplicativo Windows.
  • Somente aplicativos em pacote MSIX que são de confiança total ou têm a funcionalidade restrita packageManagement têm a permissão para usar a API de implantação para instalar as dependências do pacote Main e Singleton. O suporte para aplicativos empacotados de confiança parcial será disponibilizado em versões posteriores.
  • Ao testar F5 um aplicativo x86 que usa o método DeploymentManager.Initialize em um sistema x64, verifique se a estrutura x64 é instalada pela primeira vez executando o WindowsAppRuntimeInstall.exe. Caso contrário, você encontrará um erro de NOT_FOUND devido ao Visual Studio não implantar a estrutura x64, que normalmente ocorre por meio da implantação da Store ou do sideload.

Ciclo de vida do aplicativo

A maioria dos recursos do Ciclo de Vida do Aplicativo já existe na plataforma UWP e foi trazida para o SDK do Aplicativo Windows para uso por tipos de aplicativo da área de trabalho, especialmente aplicativos de Console não empacotados, aplicativos Win32, aplicativos Windows Forms e aplicativos WPF. A implementação de SDK do Aplicativo Windows desses recursos não pode ser usada em aplicativos UWP, pois há recursos equivalentes na própria plataforma UWP.

Aplicativos que não sejam da UWP também podem ser empacotados em pacotes MSIX. Embora esses aplicativos possam usar alguns dos recursos do ciclo de vida do SDK do Aplicativo Windows, eles devem usar a abordagem de manifesto em que isso está disponível. Por exemplo, eles não podem usar as APIs de RegisterForXXXActivation do SDK do Aplicativo Windows e devem registrar-se para ativação avançada por meio do manifesto.

Todas as restrições para aplicativos empacotados também se aplicam aos aplicativos WinUI 3 empacotados; e há considerações adicionais conforme descrito abaixo.

Considerações importantes:

  • Ativação avançada: GetActivatedEventArgs

  • Registrar/cancelar o registro para ativação avançada

    • Aplicativos não empacotados: totalmente utilizáveis.
    • Aplicativos empacotados: não utilizável use o manifesto MSIX do aplicativo.
    • Para obter mais informações, consulte Ativação avançada.
  • Instanciação única/múltipla

    • Aplicativos não empacotados: totalmente utilizáveis.
    • Aplicativos empacotados: totalmente utilizáveis.
    • Aplicativos da WinUI 3: se um aplicativo quiser detectar outras instâncias e redirecionar uma ativação, ele deverá fazer isso o mais cedo possível e antes de inicializar qualquer janela etc. Para habilitar isso, o aplicativo deve definir DISABLE_XAML_GENERATED_MAIN e gravar um Main (C#) ou WinMain (C++) personalizado, em que ele pode fazer a detecção e o redirecionamento.
    • RedirectActivationToAsync é uma chamada assíncrona e você não deve esperar em uma chamada assíncrona se o aplicativo estiver em execução em um STA. Para aplicativos Windows Forms e C# WinUI 3, você pode declarar Main como assíncrono, se necessário. Para aplicativos C++ WinUI 3 e C# WPF, você não pode declarar Main como assíncrono; portanto, em vez disso, você precisa mover a chamada de redirecionamento para outro threading para garantir que não bloqueará o STA.
    • Para saber mais, confira Instância de aplicativo.
  • Notificações de energia/estado

    • Aplicativos não empacotados: totalmente utilizáveis.
    • Aplicativos empacotados: totalmente utilizáveis.
    • Para obter mais informações, confira Gerenciamento de Energia.

Problema conhecido:

As associações de Tipo de Arquivo codificam incorretamente %1 como %251 ao definir o modelo de linha de comando do manipulador do Verbo, que falha em aplicativos do Win32 não empacotados. Edite manualmente o valor do Registro para ser %1 como uma solução alternativa parcial. Se o caminho do arquivo de destino tiver um espaço, ele ainda falhará e não haverá solução alternativa para esse cenário.

Outras limitações e problemas conhecidos

  • As versões 1.0 Preview 1 e Preview 2 contêm um bug crítico. Se você já instalou uma dessas visualizações, confira como resolver o issue. Em vez disso, recomendamos usar a versão 1.0 Preview 3.

  • Esta versão apresenta os modelos do Aplicativo em Branco, Empacotado (WinUI 3 na Área de Trabalho) para projetos C# e C++. Esses modelos permitem que você crie seu aplicativo em um pacote MSIX sem o uso de um projeto de empacotamento separado. Esses modelos têm alguns issues conhecidos nesta versão:

    • Modelo C# para Visual Studio 2019. Você encontrará o erro ao tentar criar o projeto: "O projeto não sabe como executar o nome do projeto de perfil". Para resolver esse Issue, instale a extensão de ferramentas de empacotamento MSIX de projeto único.

    • Modelo C# para Visual Studio 2019 e Visual Studio 2022. Você encontrará o seguinte erro ao tentar executar ou depurar seu projeto no computador de desenvolvimento: "O projeto precisa ser implantado antes de podermos depurar. Habilite Implantar no Configuration Manager." Para resolver esse issue, habilite a implantação para seu projeto no Configuration Manager. Confira Criar seu primeiro projeto da WinUI 3 para obter instruções.

    • Modelo C++ para Visual Studio 2019 e Visual Studio 2022. Nesta versão, esses projetos são restritos a chamar o subconjunto de APIs Win32 que podem ser chamadas por aplicativos UWP. O modelo de Aplicativo em branco, empacotado com WAP (WinUI 3 na área de trabalho) não é afetado por esse issue.

    • Modelo C++ para Visual Studio 2022 versão 17.0 versões até Preview 4. Você encontrará o seguinte erro na primeira vez que tentar executar seu projeto: "Houve erros de implantação". Para resolver esse issue, execute ou implante seu projeto uma segunda vez. Esse problema será corrigido no Visual Studio 2022 versão 17.0 Preview 5.

  • API de notificações por push (namespace Microsoft.Windows.PushNotifications) incluída incorretamente na versão 1.0 Preview 2. Este ainda é um recurso experimental, e para você usá-lo você deve instalar a versão 1.0 Experimental em vez disso. Esse recurso será removido da próxima versão 1.0.

  • A API do ciclo de vida do aplicativo (namespace Microsoft.Windows.AppCycle) inclui incorretamente o atributo Experimental na versão 1.0 Preview 2. O atributo Experimental será removido dessa API na próxima versão.

  • Sem suporte para qualquer configuração de build de CPU: ao adicionar o SDK do Aplicativo Windows a um aplicativo ou componente do .NET existente que dê suporte a Qualquer CPU, especifique a arquitetura desejada: x86, x64 ou arm64.

  • Os projetos C# que usam a versão 1.0 do Preview 2 devem usar o seguinte SDK do .NET: SDK do .NET 6 ou posterior (confira Fazer download do .NET e o .NET 5 chegará ao fim do suporte em 10 de maio de 2022).

  • Uma alternativa ao DispatcherQueue.TryEnqueue (para retomar a execução no thread da fila do dispatcher) é usar a função auxiliar resume_foreground na WIL (Biblioteca de Implementação do Windows):

    1. Adicione uma referência ao seu projeto ao pacote NuGet Microsoft.Windows.ImplementationLibrary.
    2. Adicione #include <wil/cppwinrt_helpers.h> ao seu pch.h.
    3. Adicione #include <winrt/Microsoft.UI.Dispatching.h> ao seu pch.h.
    4. Agora co_await wil::resume_foreground(your_dispatcherqueue);.

Versão 1.0 Preview 1 (1.0.0-preview1)

Importante

As versões 1.0 Preview 1 e Preview 2 contêm um bug crítico. Se você já instalou uma dessas visualizações, confira como resolver o issue. Em vez disso, recomendamos usar a versão 1.0 Preview 3.

Esta é a primeira versão do canal de preview para a versão 1.0. Ela oferece suporte a todos os recursos do canal de preview.

As seções a seguir descrevem os recursos novos e atualizados, as limitações e os problemas conhecidos para essa versão.

WinUI 3

Esta versão do WinUI 3 é focada na construção para 1.0 com correções de bugs.

  • Novos recursos: sem novos recursos na Preview 1.
  • Issues corrigidos: para obter a lista completa de problemas abordados nesta versão, confira o nosso repositório do GitHub.

Para obter mais informações ou para começar a desenvolver com o WinUI 3, confira:

Windowing

Esta versão traz a API de Janelas que introduzimos no Experimental 1 para um estado de preview. Não há grandes áreas de novos recursos nesta versão, pois ela é focada em correções de bugs, estabilidade e ajustes na assinatura da API. As mudanças e adições em destaque são apresentadas abaixo.

Novos recursos:

  • O DisplayAreaWatcher foi adicionado às APIs de janela. Isso permite que um desenvolvedor observe as alterações na topologia de exibição e enumere as DisplayAreas atualmente definidas no sistema.
  • Agora, o AppWindow suporta a configuração do ícone da janela através do método SetIcon e o AppWindowTitleBar agora suporta selecionar se deseja mostrar/ocultar o ícone da janela junto com o menu de sistema por meio da propriedade IconShowOptions.

Limitações importantes:

  • Esta versão do AppWindow está atualmente disponível apenas para os aplicativos Win32 (empacotados e não empacotados).
  • O SDK do Aplicativo Windows atualmente não fornece métodos para anexar o conteúdo da estrutura da IU a um AppWindow; você está limitado a usar os métodos de acesso de interoperabilidade HWND.
  • A personalização da barra de título da janela funciona apenas no Windows 11. Use o método IsCustomizationSupported para verificar o suporte ao recurso de personalização da barra de título. Pretendemos reduzir essa funcionalidade.

Para saber mais, confira Gerenciar janelas de aplicativos.

Entrada

Esta versão traz alguns novos recursos para a API de entrada. As mudanças e adições em destaque são apresentadas abaixo.

Novos recursos e atualizações:

  • O PointerPredictor oferece aos aplicativos de entrada com sensibilidade de latência, como aplicativos de tinta digital, a capacidade de prever locais de ponto de entrada de até 15ms no futuro para obter melhor latência e animação suave.
  • O PenDeviceInterop permite que você adquira uma referência ao Windows.Devices.Input.PenDevice usando o método FromPointerPoint.
  • O InputCursor fornece uma distinção explícita entre os tipos de cursor de sistema predefinidos e os tipos de cursor personalizados, removendo o tipo "Personalizado" presente no CoreCursor e dividindo o objeto CoreCursor em objetos separados.
  • Atualizações para APIs InputCursor.
  • O GestureRecognizer saiu do experimental para Microsoft.UI.Input.
  • O PointerPoint saiu do experimental para Microsoft.UI.Input.
  • Entrada de mouse, toque e caneta totalmente suportada para arrastar e soltar WinUI 3.

Limitações importantes:

  • Esta versão das APIs de entrada tem issues conhecidos com o Windows versão 1809.
  • O MRT Core ainda não é suportado por nenhum subtipo de InputCursor.
  • O uso direto da API do SDK da plataforma Windows.UI.Core.CoreDragOperation não funcionará com os aplicativos da WinUI 3.
  • As propriedades PointerPoint, RawPosition e ContactRectRaw foram removidas porque se referiam a valores não previstos, que eram os mesmos que os valores normais no sistema operacional. Em vez disso, use a Posição e o ContactRect. A previsão de ponteiro agora é tratada com o objeto da API do Microsoft.UI.Input.PointerPredictor.

MRT Core

A partir da versão 1.0 Preview 1, as APIs do MRT Core foram movidas do namespace Microsoft.ApplicationModel.Resources para o namespace Microsoft.Windows.ApplicationModel.Resources.

Outras limitações e problemas conhecidos

  • As versões 1.0 Preview 1 e Preview 2 contêm um bug crítico. Se você já instalou uma dessas visualizações, confira como resolver o issue. Em vez disso, recomendamos usar a versão 1.0 Preview 3.

  • Projetos criados usando o modelo de projeto C++ Aplicativo em branco e empacotado com WAP (WinUI 3 na área de trabalho) encontram o seguinte erro de build por padrão: fatal error C1083: Cannot open include file: 'winrt/microsoft.ui.dispatching.co_await.h': No such file or directory. Para resolver esse issue, remova a seguinte linha de código do arquivo pch.h. Esse problema será corrigido na próxima versão.

    #include <winrt/microsoft.ui.dispatching.co_await.h>
    
  • Uma alternativa ao DispatcherQueue.TryEnqueue (para retomar a execução no thread da fila do dispatcher) é usar a função auxiliar resume_foreground na WIL (Biblioteca de Implementação do Windows):

    1. Adicione uma referência ao seu projeto ao pacote NuGet Microsoft.Windows.ImplementationLibrary.
    2. Adicione #include <wil/cppwinrt_helpers.h> ao seu pch.h.
    3. Adicione #include <winrt/Microsoft.UI.Dispatching.h> ao seu pch.h.
    4. Agora co_await wil::resume_foreground(your_dispatcherqueue);.
  • Não há suporte para qualquer configuração da compilação de CPU: o SDK do Aplicativo Windows é escrito em código nativo e, portanto, não oferece suporte para qualquer configuração da compilação de CPU. Os modelos do WinUI 3 no Visual Studio só permitem compilações específicas da arquitetura. Ao adicionar o SDK do Aplicativo Windows a um aplicativo ou componente do .NET existente que seja compatível com qualquer CPU, especifique a arquitetura desejada: x86, x64 ou arm64.

  • Os aplicativos do .NET devem ter como destino o build 18362 ou posterior: o TFM deve ser definido como net6.0-windows10.0.18362 ou posterior e o projeto de empacotamento <TargetPlatformVersion> deve ser definido como 18362 ou posterior. Para obter mais informações, confira o issue conhecido no GitHub.

  • Os projetos C# que usam a versão 1.0 do Preview 1 devem usar o seguinte SDK do .NET: SDK do .NET 6 ou posterior (confira Fazer download do .NET e o .NET 5 chegará ao fim do suporte em 10 de maio de 2022).

  • Aplicativos não empacotados não suportados no Windows 10 versão 1809: isso deve ser resolvido na próxima versão.