Notas sobre a versão do canal estável para o SDK do Aplicativo Windows

O canal estável fornece versões do SDK do Aplicativo Windows com suporte para uso por aplicativos em ambientes de produção. Os aplicativos que usam a versão estável do SDK do Aplicativo Windows também podem ser publicados no Microsoft Store.

As seguintes versões do canal estável estão disponíveis no momento:

Caso queira atualizar um aplicativo existente de uma versão mais antiga do SDK do Aplicativo Windows para uma versão mais recente, consulte Atualizar projetos existentes para a versão mais recente do SDK do Aplicativo Windows.

Downloads para o SDK do Aplicativo Windows

Os VSIX e runtime (pacotes do instalador e do MSIX) do SDK do Aplicativo Windows estão disponíveis em Downloads para o SDK do Aplicativo Windows. Os downloads do SDK incluem as extensões do Visual Studio para criar projetos usando o SDK do Aplicativo Windows. Os downloads de runtime incluem o instalador e os pacotes MSIX usados para implantar aplicativos. Se você ainda não fez isso, Instale as ferramentas para o SDK do Aplicativo Windows.

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.

Versão 1.4

Versão 1.4.1 (1.4.230913002)

Esta é uma versão de manutenção do SDK de aplicativos do Windows que inclui correções de bugs críticos para a versão 1.4.

  • Corrigidos problemas de desempenho para melhorar o tempo até o primeiro quadro.
  • Corrigido um problema em que os menus não respeitavam RequestedThemeo . Por exemplo, foi possível que esse problema levasse a um texto branco em um plano de fundo branco. Para obter mais informações, consulte o problema #8756 do GitHub.
  • Corrigido um problema que fazia com que os fundos de acrílico às vezes se tornassem totalmente transparentes em alguns menus.
  • Corrigido um problema em que o XAML às vezes fazia com que o Windows pintasse desnecessariamente o papel de parede da área de trabalho.
  • Corrigido o suporte para e para TabNavigation = LocalListView e , que agora permite navegar entre cabeçalhos e TabNavigation = CycleGridViewitens com TAB, além de teclas de seta.
  • Corrigidas algumas exceções barulhentas ao descartar uma dica de ferramenta. Para obter mais informações, consulte o problema #8699 do GitHub.

Versão 1.4

As seções a seguir descrevem recursos novos e atualizados e problemas conhecidos da versão 1.4.

Em um aplicativo existente do Windows App SDK 1.3, você pode atualizar seu pacote Nuget para 1.4.230822000 (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.

Atualizações de widgets

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

Ilhas XAML nã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 nenhum elemento wrapper conveniente para uso no WPF ou WinForms.
  • DesktopWindowXamlSource e tipos relacionados foram adicionados no namespace Microsoft.UI.Xaml.Hosting para ilhas XAML. XamlRoot.ContentIslandEnvironment foi adicionado para ajudar a acessar as informações subjacentes da Ilha para um elemento.
  • Muitos novos tipos foram introduzidos no namespace Microsoft.UI.Content e no namespace Microsoft.UI.Input como suporte subjacente para Ilhas XAML ou para usar essa funcionalidade ContentIslands sem XAML.
  • Um novo DragDropManager (mais tipos relacionados) foi adicionado no namespace Microsoft.UI.Input.DragDrop para cenários de ilha.

ItemsView

Estamos introduzindo um novo controle de lista chamado e ItemsView uma classe concreta ItemContainer correspondente. ItemContainer é um contêiner leve com estados de seleção e elementos visuais internos, que podem facilmente encapsular o conteúdo desejado e ser usado com ItemsView para um cenário de controle de coleção.

  • O novo ItemsView controle exibe uma coleção de dados. ItemsViewé semelhante aos ListView controles e, mas é criado usando os ItemsRepeatercomponentes , ScrollViewItemContainer e GridViewItemCollectionTransitionProvider . Ele oferece a capacidade única de conectar personalizado Layout ou ItemCollectionTransitionProvider implementações. Outra vantagem importante é a capacidade de mudar o layout em tempo real, preservando a seleção de itens. O controle interno ScrollView também oferece recursos indisponíveis no ListView/GridViewcontrole do ScrollViewer , como a capacidade de controlar a animação durante rolagens programáticas.
    • Uma nova ItemTransitionProvider propriedade em ItemsRepeater (e o novo ItemsView controle) permite especificar um ItemCollectionTransitionProvider objeto para controlar animações de transição nesse controle. Um CreateDefaultItemTransitionProvider método também foi adicionado ao Layout, que permite que um objeto de layout forneça uma transição de fallback para acompanhá-lo se você não fornecer um explicitamente no ItemsView controle.
    • Uma nova IndexBasedLayoutOrientation propriedade na qual a orientação de layout, se houver, dos itens é baseada em seu índice na Layout coleção de origem. O valor padrão é IndexBasedLayoutOrientation.None. Os layouts personalizados definem essa propriedade chamando o método new (protegido). SetIndexBasedLayoutOrientation
    • Uma nova VisibleRect propriedade em VirtualizingLayoutContext obtém o retângulo visível do visor 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 VisibleRect propriedade.
  • A nova LinedFlowLayout classe é normalmente usada para dispor os itens do controle de ItemsView coleção. É particularmente útil para exibir coleção de imagens. Ele faz isso colocando-os da esquerda para a direita, e de cima para baixo, em linhas de igual altura. As imagens preenchem uma linha horizontal e, em seguida, quebram para 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 é empregado.

Novos recursos de todo o WinAppSDK

  • Uma nova ThemeSettings classe que permite que os aplicativos Win32 WinRT detectem quando a configuração de Alto Contraste do sistema foi alterada, semelhante à classe AccessibilitySettings da UWP. Consulte a especificação da API ThemeSettings no GitHub para obter mais informações.
  • AccessKeyManager.EnterDisplayMode é um novo método para exibir chaves de acesso para o elemento focalizado atual de uma raiz fornecida. As teclas de acesso estão no "modo de exibição" ao mostrar 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 entrar programaticamente no modo de exibição.
  • Application.ResourceManagerRequested fornece um mecanismo para fornecer um IResourceManager diferente para resolver URIs de recurso para cenários em que o padrão ResourceManager não funcionará. Para obter mais informações, consulte a especificação da API Application.ResourceManagerRequested no GitHub.
  • A versão do SDK WebView2 foi atualizada de 1661.34 para 1823.32.
  • Popup/FlyoutBase.IsConstrainedToRootBounds = false agora é suportado, permitindo que um pop-up/submenu se estenda para fora dos limites da janela pai. Uma SystemBackdrop propriedade foi adicionada a esses tipos para suportar ter acrílico nesses pop-ups irrestritos. Os menus, por padrão, usam isso para ter acrílico.
  • Closed, FrameworkClosede foram adicionados e IsClosedDesktopAcrylicControllerMicaController para melhorar o manuseio durante o desligamento do objeto/thread.
  • DesktopAcrylicController.Kind agora pode ser configurado para escolher entre algumas aparências de acrílico padrão.
  • DispatcherQueue tem alguns novos eventos e auxiliares para facilitar o desligamento melhor organizado e para aplicativos que usam Ilhas para executar facilmente um loop de eventos padrão suportado.
  • InputNonClientPointerSource no namespace Microsoft.UI.Input pode ser usado para cenários de barra de título personalizados para definir regiões de área não cliente. O código pode se registrar para eventos correspondentes, como eventos de foco e clique nessas regiões.
  • AppWindow tem alguns novos ajudantes para obter e associar com um DispatcherQueue.
  • O novo TreeView.SelectionChanged evento permite que os desenvolvedores respondam quando o usuário ou code-behind altera o conjunto de nós selecionados no TreeView controle.
  • O novo ScrollView controle fornece uma nova alternativa ao ScrollViewer. Esse novo controle é altamente alinhado em comportamento e API com o controle existente ScrollViewer , mas é baseado no InteractionTracker, tem novos recursos, como alterações de exibição orientadas por animação, e também foi projetado para garantir a funcionalidade completa do ItemsRepeater. Veja um ScrollViewer mais flexível · Edição #108 · microsoft/microsoft-ui-xaml (github.com) para obter mais detalhes. Vários novos tipos, incluindo ScrollPresenter, fazem parte do modelo geral ScrollView .
  • O novo AnnotatedScrollBar controle estende a funcionalidade de uma barra de rolagem regular, fornecendo uma maneira fácil de navegar por uma grande coleção de itens. Isso é conseguido através de um trilho clicável com etiquetas que atuam 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.

Problemas conhecidos

Correções de bug

  • Corrigido um problema em que chamar a API fazia com que aplicativos Microsoft.Windows.AppLifecycle.AppInstance.Restart("") não empacotados falhassem. Para obter mais informações, consulte o problema #2792 do GitHub.
  • Corrigido um problema de falha do instalador que foi introduzido na versão 1.4-experimental1. Para obter mais informações, consulte o problema #3760 do GitHub.
  • Corrigido um problema em que o tachado de texto não era removido corretamente em um TextBlock. Para obter mais informações, consulte o problema #1093 do GitHub.
  • Corrigido um problema que causava navegação incorreta Shift + Tab em um painel com TabFocusNavigation definido como "Uma vez". Para obter mais informações, consulte o problema #1363 do GitHub.
  • Corrigido um problema no C++/WinRT que impedia {x:Bind} o funcionamento correto com uma propriedade de um controle XAML nomeado. Para obter mais informações, consulte o problema #2721 do GitHub.
  • Corrigido um problema de AccessViolation em tempo de execução em aplicativos de área de trabalho WinUI causado pela configuração DebugSettings.EnableFrameRateCounter = truedo . Para obter mais informações, consulte o problema #2835 do GitHub.
  • Corrigido um problema em que XamlTypeInfo.g.cpp não incluía cabeçalhos necessários. Para obter mais informações, consulte o problema #4907 do GitHub.
  • Corrigido um problema de travamento causado pela entrada simultânea de vários toques e mouse. Para obter mais informações, consulte o problema #7622 do GitHub.
  • Corrigido um problema que impedia uma janela ativa do aplicativo WinUI 3 de rolar quando a configuração do sistema para desabilitar a rolagem de janelas inativas ao passar o mouse estava em vigor. Para obter mais informações, consulte o problema #8764 do GitHub.
  • Corrigida uma falha ao tentar subclasse MediaPlayerElement.
  • Corrigidos alguns problemas de travamento e vazamento de memória no TreeView.
  • Corrigido um problema de travamento do aplicativo que poderia acontecer ao usar o teclado para navegar no RadioButtons.
  • Corrigida uma falha ao usar o teclado para navegar em um PipsPagerarquivo .
  • Corrigido o conteúdo WebView2 para dimensionar com a configuração de acessibilidade "Tamanho do texto" no aplicativo Configurações.
  • Corrigida uma falha que poderia ocorrer quando as animações estavam em execução quando a tela era desativada.
  • Corrigido um problema de desempenho introduzido na versão 1.3 que adicionava uma sobrecarga de ~10% ao primeiro layout/renderização.

Versão 1.3

Versão 1.3.3 (1.3.230724000)

Essa é uma versão de manutenção do SDK do Aplicativo Windows que inclui correções importantes de bugs para a versão 1.3.

  • Corrigido um problema em que o mouse às vezes parava de funcionar quando uma caixa de diálogo era fechada.
  • Corrigido um problema de implantação que impedia a instalação de aplicativos devido a uma incompatibilidade de versões de pacotes no sistema. Para obter mais informações, consulte Problema #3740 do GitHub.
  • Corrigido um problema que afetava o posicionamento do menu de contexto no Windows App SDK 1.3.
  • Corrigido um problema que fazia com que alguns aplicativos WinUI3, em algumas situações, falhassem quando o aplicativo era fechado porque o XAML se desligava muito cedo.
  • Corrigido um problema em que os ícones de fonte não eram espelhados corretamente em idiomas da direita para a esquerda. Para obter mais informações, consulte o problema #7661 do GitHub.
  • Corrigido um problema que fazia com que um aplicativo falhasse no desligamento quando os recursos eram derrubados em uma ordem incorreta. Para obter mais informações, consulte Problema #7924 do GitHub.

Versão 1.3.2 (1.3.230602002)

Essa é uma versão de manutenção do SDK do Aplicativo Windows que inclui correções importantes de bugs para a versão 1.3.

  • Correção de uma falha ao definir um Cursor Protegido.
  • Correção de um problema de desempenho no XamlMetadataProvider durante a inicialização do aplicativo. Para saber mais, confira o problema do GitHub nº 8281.
  • Correção de um problema com hiperlinks e toque em um RichTextBlock. Para saber mais, confira o problema do GitHub nº 6513.
  • Correção de um problema com rolagem e touchpads no WebView2. Para saber mais, confira o problema do GitHub nº 7772.
  • Correção de um problema em que uma atualização de SDK do Aplicativo Windows às vezes exigia uma reinicialização do Visual Studio. Para saber mais, confira o problema do GitHub nº 3554.
  • Correção de uma exceção ruidosa no desligamento ao realizar a execução em um depurador.

Versão 1.3.1 (1.3.230502000)

Essa é uma versão de manutenção do SDK do Aplicativo Windows que inclui correções importantes de bugs para a versão 1.3.

  • Corrigido o problema que fazia com que os aplicativos falhassem ao definir o SystemBackdrop se o Conteúdo fosse nulo. Para obter mais informações, consulte o problema do GitHub nº 8416.
  • Corrigido o problema que fazia com que os aplicativos falhassem ao definir o Título da janela no XAML, uma nova funcionalidade adicionada à versão 1.3.0. Para obter mais informações, consulte o problema do GitHub nº 3689.
  • Corrigido o problema em que uma janela se concentrava incorretamente quando seu conteúdo era alterado.
  • Corrigido o problema com a criação de projetos C++ com os modelos de projeto do WinAppSDK 1.3.
  • Modelos atualizados no Visual Studio Marketplace

Versão 1.3

As seções a seguir descrevem recursos novos e atualizados e problemas conhecidos para a versão 1.3.

Em um aplicativo SDK do Aplicativo Windows 1.2 existente, atualize seu pacote Nuget para 1.3.230331000 (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 & plano de fundo acrílico são mais fáceis de usar em seu aplicativo WinUI 3. Confira os documentos de API de Pano de Fundo do Sistema e do Mica para obter mais informações sobre as propriedades do Cenário do XAML.

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.

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.
  • 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 ThemeResource estáticas &. Para obter mais informações, consulte a especificação de API Rastrear falhas de pesquisa de referência de recurso XAML no GitHub.

Outras atualizações

Problema conhecido

Devido a uma alteração recente no compilador do XAML, um projeto existente que é atualizado para 1.3 pode sofrer um erro de build como o seguinte no Visual Studio:

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

Isso é causado pelo Visual Studio usando uma DLL de tarefa do compilador do XAML armazenada em cache a partir da 1.2, mas conduzindo-a com lógica incompatível do MSBuild de 1.3, conforme conferido no texto de erro acima. A solução alternativa é desligar o Visual Studio, reiniciá-lo e recarregar a solução.

Versão 1.2

Versão 1.2.5 (1.2.230313.1)

Essa é uma versão de manutenção do SDK do Aplicativo Windows que inclui correções importantes de bugs para a versão 1.2.

  • Corrigido o problema que fazia com que os aplicativos falhassem durante o desligamento da Composição.
  • Corrigido o problema que fazia com que os aplicativos continuassem executando animações mesmo quando a tela estava desativada.
  • Corrigido o problema que fazia com que a entrada de mouse e toque falhasse no WebView2 quando a entrada do mouse e do teclado ocorreu simultaneamente. Para obter mais informações, consulte o problema do GitHub nº 3266.

Versão 1.2.4 (1.2.230217.4)

Essa é uma versão de manutenção do SDK do Aplicativo Windows que inclui correções importantes de bugs para a versão 1.2.

  • Corrigido o problema que fazia com que os aplicativos autossuficientes não pudessem definir as Configurações do UAC. Para obter mais informações, consulte o problema do GitHub nº 3376.
  • Corrigido o problema que fazia com que as notificações por push retornassem um tempo de Expiração impreciso com PushNotificationChannel::ExpirationTime. Para obter mais informações, consulte o problema do GitHub nº 3300.
  • Corrigido o problema que fazia com que números negativos fossem considerados "inválidos" ao passar um duplo como um parâmetro para uma função x:Bind.
  • Várias correções para atualizar a WinUI do VSIX. Essas atualizações incluíram simplificar a dipAwareness do modelo de projeto no app.manifest, remover os modelos da UWP, atualizar arquivos de recursos localizados, adicionar a ID do telefone para desbloquear o envio do repositório e remover o aviso de direitos autorais e licença. Para obter mais informações, consulte os problemas do GitHub nº 5659, nº 3205, nº 3323, nº 3322 e nº 3143.

Versão 1.2.3 (1.2.230118.102)

Essa é uma versão de manutenção do SDK do Aplicativo Windows que inclui correções importantes de bugs para a versão 1.2.

  • Corrigido o problema que fazia com que os aplicativos da WinUI 3 falhassem quando várias janelas foram fechadas.
  • Corrigido o problema que fazia com que uma falha no fechamento do aplicativo quando duas ou mais referências à interface do ThreadPoolTimer são chamadas. Para obter mais informações, consulte os problemas do GitHub nº 7260 e nº 7239.
  • Corrigido o problema que fazia com que todos os aplicativos do MSIX de projeto único executassem como confiança total. Para obter mais informações, consulte o problema do GitHub nº 7766.

Versão 1.2.2 (1.2.221209.1)

Essa é uma versão de manutenção do SDK do Aplicativo Windows que inclui correções importantes de bugs para a versão 1.2.

  • Corrigido o problema que fazia com que a Microsoft Store e os pacotes de carregamento lateral (por exemplo, do instalador, do NuGet e do bootstrapper) falhassem na instalação se o outro já estivesse instalado. Para obter mais informações, consulte o problema do GitHub nº 3168.
  • Corrigido o problema que causava efeitos de elasticidade e curvas de animação ausentes ao rolar com um touchpad. Para obter mais informações, consulte o problema do GitHub nº 7874.
  • Corrigido o problema em ListView que causava vazamentos de memória.
  • Corrigido o problema que fazia com que o modelo de Botão não respeitasse a propriedade Primeiro plano após passar o mouse. Para obter mais informações, consulte o problema do GitHub nº 7208.
  • Corrigido o problema que causava uma exceção desnecessária quando não há MediaPlaybackItem em um MediaElement.
  • Corrigido o problema que fazia com que um quadro branco aparecesse no MediaPlayerElement em transições de conteúdo.
  • Correção de problemas adicionais que faziam com que App.UnhandledException não capturasse exceções de outros threads. Para obter mais informações, consulte os problemas do GitHub nº 1259 e nº 5221.

Versão 1.2.1 (1.2.221116.1)

Essa é uma versão de manutenção do SDK do Aplicativo Windows que inclui uma correção importante de bug para a versão 1.2.

Corrigido o problema que causava uma falha na inicialização em aplicativos da WinUI 3 do C++ ao adicionar um controle WebView2 ou TextBox. Para obter mais informações, consulte os problemas do GitHub nº 7911&nº 3117.

Versão 1.2

As seções a seguir descrevem recursos novos e atualizados, limitações e problemas conhecidos para 1.2.

Observação

O Visual Studio 2019 e o .NET 5 não têm mais suporte para a criação de aplicativos C# (consulte 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. Quando lançado, o WinAppSDK 1.2 também dará suporte ao .NET 7.

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

A placa de widgets foi introduzida pela primeira vez no Windows 11 e foi limitada à exibição de widgets internos. Os widgets são pequenos contêineres de interface do usuário que exibem texto e elementos gráficos na placa 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 na placa 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 WIP (Versão Prévia do Windows Insider) superior ou igual a 25217 com a versão da placa 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.
  • 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.

DisplayInformation

Os aplicativos da área de trabalho do Windows agora podem dar suporte ao HDR (Alto Alcance Dinâmico) e ao ACM (Gerenciamento Automático de Cores) 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.

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, consulte 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, consulte as notas de versão para a WinUI 2.7 e WinUI 2.8.

Problemas corrigidos

Limitações conhecidas

  • Ao criar um novo projeto da WinUI 3 com o Visual Studio 2022 17.4.0, ele fará referência a uma versão prévia do WinAppSDK. Use o Gerenciador de Pacotes NuGet para atualizar a referência a esta versão.
  • A configuração de MediaPlayerElement.Source como URI relativo (ms-appx/ms-resource) falha em aplicativos não empacotados. A solução alternativa recomendada é converter o URI ms-appx:/// relativo em um URI file:/// totalmente resolvido.

Corte para aplicativos desenvolvidos com o .NET

Os desenvolvedores do .NET agora podem publicar aplicativos WinAppSDK aparados. 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, consulte 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 problema 2478 no GitHub.

Suporte ao Arm64 do Visual Studio

Já no Project Reunion (agora WinAppSDK) 0.5, os aplicativos desenvolvidos com o WinAppSDK puderam ser executados no Arm64. A partir do Visual Studio 17.3 Versão Prévia 2, será possível desenvolver aplicativos nativos com WinAppSDK em dispositivos Arm64.

Para começar a desenvolver em um dispositivo Arm64, consulte Windows no Arm e Visual Studio Arm64 .

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, consulte 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 básicas 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, consulte a especificação do GetSecurityDescriptorForAppContainerNames 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.

  • Os testes de unidade podem falhar com um erro REGDB_E_CLASSNOTREG no painel de saída Testes no Visual Studio. Como alternativa, adicione <WindowsAppContainer>true</WindowsAppContainer> ao arquivo de projeto.
  • Não há suporte para PublishSingleFile do .NET.
  • 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>.
  • Microsoft.WindowsAppRuntime.Release.Net.dll é sempre o binário ARM64 e não funciona para aplicativos x86 e x64. Ao chamar explicitamente a API de Inicialização, não use o assembly Microsoft.WindowsAppRuntime.Release.Net.dll. Como alternativa, incluía constantes de versão neste arquivo de origem distribuído com o pacote NuGet: '.. \include\WindowsAppSDK-VersionInfo.cs' ou use o inicializador automático.

Versão 1.1

A versão mais recente disponível da linhagem 1.1.x do canal estável do SDK do Aplicativo Windows é a versão 1.1.5. A versão 1.1.x dá suporte a todos os recursos estáveis do canal (consulte a seção Recursos disponíveis por canal de lançamento em SDK do Aplicativo Windows canais de versão).

Versão 1.1.5

Essa é uma versão de manutenção do SDK do Aplicativo Windows que inclui correções importantes de bugs para a versão 1.1.

Correções de bug

  • Corrigido o problema em que o Acrílico não funciona se o Mica está habilitado. Para obter mais informações, consulte o problema 7200 no GitHub.
  • Corrigido o problema que fazia com que os aplicativos que dependem do instalador do WindowsAppRuntime (por exemplo, aplicativos não empacotados) falhassem ao serem executados em computadores Windows 10 ARM64. Para obter mais informações, consulte o problema 2564 no GitHub.

Versão 1.1.4

Essa é uma versão de manutenção do SDK do Aplicativo Windows que inclui correções importantes de bugs para a versão 1.1.

Correções de bug

  • Corrigida a regressão de 1.0.x, fazendo com que o ListView, TreeView e outros controles 'List' falhassem ao rolar com muitos itens. Para obter mais informações, consulte o problema 7230 no GitHub.
  • Corrigido o problema com DispatcherQueue que fazia com que os retornos de chamada enfileirados não fossem mais invocados.
  • Corrigido o problema que causava uma falha no aplicativo ao chamar DeploymentManager.Initialize várias vezes na mesma sessão do aplicativo.
  • Corrigido o problema que fazia com que os aplicativos C# falhassem ao compilar no Visual Studio Arm64. Para obter mais informações, consulte o problema 7140 no GitHub.
  • Correção de falha intermitente no código de imagem XAML devido ao tratamento incorreto de falhas.
  • Corrigido o problema de perda de memória ao anexar um manipulador de eventos em ItemsRepeater com um UserControl pai. Para obter mais informações, consulte o problema 6123 no GitHub.
  • Corrigido o problema que causava uma falha de build no Visual Studio 17.3 quando um projeto de aplicativo é configurado para habilitar atualizações automáticas de seu pacote quando ele é sideload (ou seja, .appinstaller). Para obter mais informações, consulte o problema 2773.
  • Corrigido o problema que fazia com que aplicativos empacotados distribuídos pelo Microsoft Store que chamam o Inicializar (por exemplo, para Push) o chamassem de forma redundante como DeploymentManager::GetStatus retornado Package Install Needed quando os pacotes Main e Singleton já estão instalados. Isso causou uma degradação de desempenho na inicialização do aplicativo.
  • Corrigido o problema que causava uma exceção em aplicativos de instância única quando o evento de limpeza era destinado a ser ignorado se não pudesse ser aberto. Para obter mais informações, consulte o PR no GitHub.

Versão 1.1.3

Essa é uma versão de manutenção do SDK do Aplicativo Windows que inclui correções importantes de bugs para a versão 1.1.

Correções de bug

  • Corrigido o conjunto relacionado de problemas em que o XAML falha ao incluir um controle ProgressBar, ProgressRing, PipsPager, PersonPicture ou Expander na primeira página do aplicativo. Para obter mais informações, consulte o problema 7164 no GitHub.
  • Corrigido o problema que fazia com que o instalador x64 falhasse ao instalar o runtime do SDK do Aplicativo Windows. Para obter mais informações, consulte o problema 2713 no GitHub.
  • Corrigido o problema que fazia com que o WindowsAppRuntime falhasse na instalação se uma versão superior do runtime estivesse instalada. Para obter mais informações, consulte a discussão 2708 no GitHub.

Versão 1.1.2

Essa é uma versão de manutenção do SDK do Aplicativo Windows que inclui correções importantes de bugs para a versão 1.1.

Correções de bug

  • Corrigido o problema em que o XAML falhava ao fechar uma janela enquanto uma caixa de diálogo estava aberta. Para obter mais informações, consulte o problema 1032 no GitHub.
  • Adicionada marca <auto-generated> em arquivos C# para evitar avisos StyleCop. Para obter mais informações, consulte o problema 4526 no GitHub.
  • Corrigido o problema que causava um erro de violação de acesso e falha ao chamar o MddBootstrapInitialize quando o pacote de estrutura correspondente não estava instalado. Para obter mais informações, consulte o problema 2592 no GitHub.
  • Corrigido o problema em que os modelos de item do C# da WinUI 3 estavam ausentes no Visual Studio. Para obter mais informações, consulte o problema 7148 no GitHub.
  • Corrigido o problema em que o instalador do WindowsAppRuntime falhava quando executado como usuário do sistema. Para obter mais informações, consulte o problema 2546 no GitHub.

Versão 1.1.1

Essa é uma versão de manutenção do SDK do Aplicativo Windows que inclui correções importantes de bugs para a versão 1.1.

Correções de bug

  • Corrigido o problema que fazia com que os aplicativos falhassem às vezes durante uma operação de arrastar e soltar. Para obter mais informações, consulte o problema 7002 no GitHub.
  • Corrigido o problema que fazia com que a barra de título desaparecesse ao alternar o AppWindowPresenterKind de FullScreen para Padrão.
  • Corrigido o problema em que as APIs do Bootstrapper como ApiInformation.IsPropertyPresent e ApiInformation.IsMethodPresent causavam exceções sem tratamento em aplicativos que não são empacotados. Para obter mais informações, consulte o problema 2382 no GitHub.
  • Corrigido o problema que causava o congelamento do aplicativo ao maximizar o aplicativo com entrada de caneta.

Versão 1.1

As seções a seguir descrevem recursos novos e atualizados, limitações e problemas conhecidos para 1.1.

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".

Reinicialização do ciclo de vida do aplicativo &

Agora, os aplicativos podem iniciar uma reinicialização explícita com o estado de argumentos específicos & baseados na API do RegisterApplicationRestart existente para se registrar no sistema operacional para reiniciar em cenários de atualização e reinicialização de travamento &.

Novos recursos:

  • Qualquer aplicativo de área de trabalho empacotado ou não empacotado pode terminar e reiniciar-se no comando e ter acesso a uma cadeia de caracteres de linha de comando arbitrária para a instância reiniciada usando a API AppInstance.Restart().
    • Essa é uma versão elevada e síncrona da API da UWP RequestRestartAsync() que permite a reinicialização com argumentos e retorna um AppRestartFailureReason se a reinicialização não for bem-sucedida.
    • Confira os documentos da API de Reinicialização no GitHub para obter informações de referência de uso &.

WinUI 3

A WinUI 3 é uma estrutura de UX (experiência do usuário) nativa para o SDK do Aplicativo Windows. Esta versão inclui novos recursos do WinAppSDK 1.0, bem como vários aprimoramentos de estabilidade das versões prévias 1.0 & 1.1.

Novos recursos:

Bugs corrigidos:

  • Corrigido o problema ao usar o Mica em que o aplicativo falhava quando uma janela é dividida igualmente por duas telas. Consulte o problema 7079 no GitHub para obter mais informações.
  • 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, consulte os problemas 6076&e 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, consulte o problema 6218 no GitHub.
  • Corrigido o problema em que os usuários não conseguem soltar um elemento quando o recurso "arrastar e soltar" está habilitado. Para obter mais informações, consulte o problema 7008 no GitHub.

Limitações conhecidas:

  • Ao usar uma barra de título personalizada, os controles legenda não alteram a cor na alteração do tema.
  • O XAML falha quando um usuário fecha uma janela enquanto uma caixa de diálogo está aberta.

Implantação

Novos recursos:

Limitações conhecidas:

  • A execução do instalador do Windows App Runtime (WindowsAppRuntimeInstall.exe) requer que o sideload seja habilitado. Para obter mais informações, consulte o problema 2469 no GitHub.
  • A criação de um pacote MSIX por meio dos menus do Projeto do Visual Studio pode falhar no Visual Studio em alguns cenários. Esse problema será corrigido no Visual Studio versão 17.3 Versão Prévia 2 e atendido no 17.2. Caso encontre esse problema, poderá contornar isso gerando um MSIX da linha de comando, alternando para um projeto não empacotado ou revertendo para o SDK do Aplicativo Windows 1.0.
  • Aplicativos autônomos empacotados com MSIX não têm suporte no 1809, causando falha no aplicativo na inicialização.

Elevação

Agora, os aplicativos podem ser executados com privilégios elevados.

Limitações conhecidas:

Gerenciador de Variáveis de Ambiente

O Gerenciador de Variáveis de Ambiente é uma nova API introduzida no SDK do Aplicativo Windows 1.1. O Gerenciador de Variáveis de Ambiente permite que os desenvolvedores acessem e modifiquem variáveis de ambiente no processo, no usuário e no escopo do computador de uma superfície de API.

Se o Gerenciador de Variáveis de Ambiente for usado de um aplicativo empacotado, todas as operações de variável de ambiente serão registradas. Quando o pacote é removido, todas as operações de variável de ambiente são revertidas.

Novos recursos:

  • Obtenha e defina variáveis de ambiente no processo, no usuário e no escopo do computador.
  • A variável de ambiente automática reverte quando um pacote que usa o gerenciador de variáveis de ambiente é removido.
  • Inclui APIs específicas para PATH e PATHEXT.

Limitações conhecidas:

  • Disponível apenas no Windows 11

MRT Core

O MRT Core é uma versão simplificada do Sistema de Gerenciamento de Recursos do Windows moderno que é distribuído como parte do SDK do Aplicativo Windows.

Problemas corrigidos:

  • Um problema que faz com que os recursos não sejam indexados por padrão quando um arquivo de recurso é adicionado usando a interface do usuário do VS é corrigido no SDK do .NET 6.0.300. Caso esteja usando uma versão mais antiga do SDK do .NET, continue a usar a solução alternativa documentada nas notas de versão da 1.0. Consulte o problema 1786 no GitHub para obter informações adicionais.
  • Um problema que fazia com que o URI do recurso não fosse criado corretamente em aplicativos da WinUI 3 não empacotados do C++ foi corrigido no Visual Studio 2022 versão 17.2. Caso esteja usando uma versão mais antiga do Visual Studio, atualize o Visual Studio para 17.2 para receber essa correção.

Limitações conhecidas:

  • 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. Consulte o problema 1503 no GitHub para obter mais informações.

Para obter mais informações, consulte Gerenciar recursos com o MRT Core.

Notificações

Os desenvolvedores de aplicativos empacotados (incluindo empacotados com local externo) 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.
  • Suporte para notificações por push para aplicativos empacotados e não empacotados.

Limitações conhecidas:

  • Não há suporte para o envio de notificações de um aplicativo com privilégios elevados. PushNotificationManager::IsSupported() não executará uma verificação para o modo elevado.

Windowing

Para facilitar o acesso de programação à funcionalidade implementada em USER32.dll (consulte Windows e mensagens), essa versão apresenta mais dessa funcionalidade em AppWindow própria.

Novos recursos:

  • 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 ao especificar se a janela deve ser ativada ou não no momento em que a chamada é feita.
  • Agora, os aplicativos podem determinar dimensões específicas para o tamanho da área do cliente da janela em coordenadas do Win32, sem a necessidade de calcular o dimensionamento da área não cliente para obter um tamanho específico da área do cliente.
  • As APIs adicionais do WinRT estão disponíveis para dar suporte ao gerenciamento de ordem z de janelas com base na funcionalidade hWndInsertAfter do SetWindowPos.
  • Os aplicativos que desenham barras de título personalizadas com AppWindowTitleBar.ExtendsContentIntoTitleBar podem definir uma opção PreferredTitleBarHeight. Agora você tem uma opção entre uma barra de título de altura padrão ou uma barra de título alta que fornece mais espaço para conteúdo interativo. Consulte Barra de título nas diretrizes de design fluente para obter conselhos sobre quando usar uma barra de título alta.

Problemas corrigidos:

  • Quando o apresentador de tela inteira é invocado pela primeira vez, a janela agora se encaixa na tela inteira corretamente. Consulte o problema 1853 no GitHub para obter mais informações.
  • O Windows criado com AppWindow::GetFromWindowId tem o OverlappedPresenter como apresentador padrão, mas não tem restrições em termos de alterações nos estilos de janela provenientes de outras APIs. O Windows criado com o AppWindow::Create terá as proteções padrão do Apresentador em vigor desde o início. Consulte o problema 2049 no GitHub para obter mais informações.
  • Usar a API OverlappedPresenter.SetBorderAndTitlebar para ocultar botões de legenda e bordas resultaria em uma borda superior de 1px quando maximizada. Isso foi resolvido. Consulte o problema 1693 no GitHub para obter mais informações.

Limitações conhecidas:

  • Ao usar a API AppWindowTitlebar para personalizar as cores da barra de título padrão, o ícone e o texto são desalinhados em comparação com a barra de título padrão. Para obter mais informações, consulte o problema 2459 no GitHub.

  • Ao resolver o problema 2049 no GitHub (observado acima), apresentamos o seguinte bug: se você aplicar qualquer AppWindowPresenter a um AppWindow recuperado de GetFromWindowId, altere um estilo de janela que está sendo acompanhado por esse Apresentador por meio da chamada a APIs USER32 e tente reverter de volta para o estado anterior da janela aplicando novamente o Apresentador padrão, o resultado é uma janela que não tem nenhuma barra de título. Caso dependa de qualquer Apresentador em seu aplicativo e usar chamadas para USER32 para alterar estilos de janela no momento em que um Apresentador não padrão for aplicado, talvez seja necessário adicionar uma solução alternativa para garantir o comportamento correto da janela até que esse bug seja atendido. Use o seguinte snippet de código como um modelo para contornar o problema:

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

C#/WinRT

Componentes de Windows Runtime C#, incluindo controles personalizados da WinUI, agora têm suporte. Isso permite que os autores de componentes distribuam componentes de runtime criados em C# para qualquer linguagem compatível com WinRT (por exemplo, C++/WinRT). Consulte, Passo a passo – Criar um componente C# com controles da WinUI 3 e consumi-lo de um aplicativo C++/WinRT que usa o SDK do Aplicativo Windows e o exemplo no GitHub para começar.

Outras limitações e problemas conhecidos

  • Os aplicativos que fazem referência a um pacote que depende do WebView2 (como Microsoft.Identity.Client) não são compilados. Isso é causado por binários conflitantes no momento da compilação. Para obter mais informações, consulte o problema 2492 no GitHub.
  • Usar dotnet build com um projeto de biblioteca de classes C# do WinAppSDK pode visualizar um erro de build "A tarefa Microsoft.Build.Packaging.Pri.Tasks.ExpandPriContent não pôde ser carregada". Para resolver esse problema definido <EnableMsixTooling>true</EnableMsixTooling> no arquivo de projeto.
  • Os modelos padrão do WinAppSDK observam que o MaxVersionTested="10.0.19041.0" quando deveria ser "10.0.22000.0". Para obter suporte completo de alguns recursos, notadamente UnlockedDEHs, atualize o MaxVersionTested para "10.0.22000.0" no arquivo de projeto.

Versão 1.0

A versão mais recente disponível da linhagem 1.0.x do canal estável do SDK do Aplicativo Windows é a versão 1.0.4. A versão 1.0.x dá suporte a todos os recursos estáveis do canal (consulte a seção Recursos disponíveis por canal de lançamento em SDK do Aplicativo Windows canais de versão).

Versão 1.0.4

Essa é uma versão de manutenção do SDK do Aplicativo Windows que inclui correções importantes de bugs para a versão 1.0.

Correções de bug

  • Corrigido o problema que fazia com que o AppBars, quando usado como Page.TopAppBar ou Page.BottomAppBar, não renderizasse na tela.
  • Corrigido o problema em que aplicativos com um nome de pacote de 12 caracteres ou menos que usam um controle da WinUI de MUXControls.dll falharão imediatamente. Para obter mais informações, consulte o problema 6360 no GitHub.
  • Correção de problemas de entrada por toque que causaram problemas com atalhos de teclado e outros cenários. Para obter mais informações, consulte o problema 6291 no GitHub.
  • Corrigido o problema que fazia com que os aplicativos empacotados com MSIX ou implantados como autônomo falhassem na implantação.
  • Corrigido o problema que fazia com que os aplicativos falhassem às vezes durante uma operação de arrastar e soltar. Para obter mais informações, consulte o problema 7002 no GitHub.

Versão 1.0.3

Essa é uma versão de manutenção do SDK do Aplicativo Windows que inclui correções importantes de bugs para a versão 1.0.

Correções de bug

  • 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.
  • Correção de problemas de entrada por toque que causaram problemas com atalhos de teclado e outros cenários. Para obter mais informações, consulte o problema 6291 no GitHub.

Observação: normalmente não adicionamos funcionalidade em uma versão de manutenção, mas a correção do WebView2 desta versão exigiu que atualizemos para a última versão do SDK do WebView2 (1020.46 a 1185.39). Consulte as Notas sobre a versão do SDK do WebView2 para obter informações adicionais sobre o WebView2 1.0.1185.39 e Distribuir seu aplicativo e o Runtime do WebView2 para obter informações adicionais sobre o Runtime do WebView2.

Versão 1.0.2

Essa é uma versão de manutenção do SDK do Aplicativo Windows que inclui correções importantes de bugs para a versão 1.0.

Correções de bug

  • 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, consulte o problema 6218 no GitHub.
  • Corrigido o problema que fazia com que aplicativos C# falhassem na inicialização quando o CRT (Runtime do C/C++) não estava instalado. No entanto, o CRT ainda é necessário para aplicativos C# usando o WebView2. Para obter mais informações, consulte o problema 2117 no GitHub.
  • Corrigido o problema em que aplicativos com MSIX de projeto único não geravam um arquivo .appinstaller. Para obter mais informações, consulte o problema 1821 no GitHub.
  • Corrigido o problema em que os aplicativos da WinUI não davam suporte ao .NET 6 dotnet build.

Versão 1.0.1

Essa é uma versão de manutenção do SDK do Aplicativo Windows que inclui correções importantes de bugs e suporte a várias janelas para a versão 1.0.

Correções de bug

  • Corrigido o problema que fazia com que o MddBootstrapAutoinitializer não fosse compilado com o ImplicitUsings habilitado. Para obter mais informações, consulte o problema 1686 no GitHub.
  • Corrigido o problema em que o foco no WebView2 seria perdido inesperadamente, causando problemas de entrada e seleção. Para obter mais informações, consulte os problemas 5615& e 5570 no GitHub.
  • Corrigido o problema que fazia com que a barra de ferramentas no aplicativo no Visual Studio não fosse clicável ao usar uma barra de título personalizada em um aplicativo WinUI 3.
  • Corrigido o problema que fazia com que o Layout do Snap não aparecesse ao usar uma barra de título personalizada em um aplicativo WinUI 3. Para obter mais informações, consulte os problemas 6333& e 6246 no GitHub.
  • Corrigido o problema que fazia com que uma exceção ao definir a propriedade Window.ExtendsContentIntoTitleBar quando Window.SetTitlebar fosse chamado com um UIElement ainda carregando.
  • Corrigido o problema em que os aplicativos MSIX de projeto único não davam suporte para dotnet build.
  • Corrigido o problema que fazia com que os aplicativos não empacotados não fossem instalados após a instalação de um aplicativo empacotado. Para obter mais informações, consulte o problema 1871 no GitHub.
  • Corrigido o problema de redução do desempenho durante as operações de arrastar do mouse.
  • Correção de falha ao chamar GetWindowIdFromWindow() em aplicativos não empacotados. Para obter mais informações, consulte a discussão 1891 no GitHub.

As limitações e problemas conhecidos da versão 1.0 também se aplicam à versão 1.0.1.

Além disso, para aplicativos com barras de título personalizadas, fizemos alterações nesta versão (e corrigimos vários problemas) que incluem correções na janela de vidro usada para operações de arrastar&soltar. A recomendação é usar os valores e comportamentos padrão (experimente!). Se a barra de título usou margens para que os botões de legenda padrão fossem interativos, recomendamos visualizar sua região de arrastar definindo a tela de fundo da barra de título como vermelha e ajustando as margens para estender a região de arrastar para os controles legenda.

Novos recursos

Estabilizamos e habilitamos a criação de várias janelas no mesmo thread em aplicativos da WinUI 3. Consulte o problema 5918 para obter mais informações.

Versão 1.0

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

WinUI 3

A WinUI 3 é uma estrutura de UX (experiência do usuário) nativa para o SDK do Aplicativo Windows. Nesta versão, adicionamos vários novos recursos de SDK do Aplicativo Windows 0.8 e problemas estabilizados de versões 1.0 Versão Prévia.

Novos recursos e atualizações:

  • Adicionamos novos controles (PipsPager, Expander, BreadcrumbBar) e atualizamos os controles existentes para refletir os estilos mais recentes do Windows da WinUI 2.6.
  • O empacotamento MSIX de projeto único tem suporte na WinUI criando um novo aplicativo usando o "Aplicativo em Branco, Empacotado..." de segmentação.
  • Agora, damos suporte à implantação de aplicativos WinUI 3 que não são empacotados nas versões 1809 e superiores do Windows. Confira Criar seu primeiro projeto da WinUI 3 para obter informações adicionais.
  • Os projetos da WinUI 3 agora podem definir sua versão de destino como Windows 10, versão 1809. Anteriormente, eles só podiam ser definidos a partir da versão 1903.
  • Na barra de ferramentas do aplicativo, Recarga Dinâmica, & aplicativos empacotados com Live Visual Tree para a WinUI têm suporte no Visual Studio 2022 Versão Prévia 5 e GA.

Limitações importantes:

  • Problemas conhecidos para aplicativos da WinUI empacotados e não empacotados:

    • Erro em tempo de execução em aplicativos C++ ou C# que fazem referência a um componente de Windows Runtime C++:
      • Para resolver, adicione o destino abaixo ao final do .vcxproj do componente do Windows Runtime:

        <Target Name="GetPriIndexName">
        <PropertyGroup>
            <!-- Winmd library targets use the default root namespace of the project for the App package name -->
            <PriIndexName Condition="'$(RootNamespace)' != ''">$(RootNamespace)</PriIndexName>
            <!-- If RootNamespace is empty fall back to TargetName -->
            <PriIndexName Condition="$(PriIndexName) == ''">$(TargetName)</PriIndexName>
        </PropertyGroup>
        </Target>
        
      • O erro esperado será semelhante ao erro de origem do WinRT - 0x80004005: 'Não é possível localizar o recurso de 'ms-appx:///BlankPage.xaml'.'.

  • Problemas conhecidos para aplicativos da WinUI com MSIX de projeto único (aplicativo em Branco, modelo Empacotado):

    • Pacote ausente & Publicar item de menu até reiniciar o Visual Studio: ao criar um novo aplicativo com MSIX de projeto único no Visual Studio 2019 e 2022 usando o modelo de projeto de Aplicativo em Branco, Empacotado (WinUI 3 na Área de Trabalho), o comando para publicar o projeto não aparece no menu até que você feche e abra novamente o Visual Studio.
    • Um aplicativo C# com MSIX de projeto único não será compilado sem o componente opcional "Ferramentas C++ (v14x) da Plataforma Universal do Windows" instalado. Confira Instalar ferramentas para o SDK do Aplicativo Windows para obter mais informações.
    • Possível erro de tempo de execução em um aplicativo com MSIX de projeto único que consome tipos definidos em um componente de Windows Runtime referenciado: para resolve, adicione manualmente entradas de classe ativáveis ao appxmanifest.xml.
      • O erro esperado em aplicativos C# é "COMException: classe não registrada (0x80040154 (REGDB_E_CLASSNOTREG))".
      • O erro esperado em aplicativos C++/WinRT é "winrt::hresult_class_not_registered".
  • Problemas conhecidos para aplicativos da WinUI 3 que não são empacotados (aplicativos não empacotados):

  • Problemas conhecidos para empacotar e implantar aplicativos da WinUI:

    • Não há suporte para o comando Package em aplicativos da WinUI com MSIX de projeto único (aplicativo em Branco, modelo Empacotado). Em vez disso, use o comando Package & Publish para criar um pacote MSIX.
    • Para criar um pacote NuGet a partir de uma Biblioteca de Classes C# com o comando Pack, verifique se o ativo Configuration é Release.
    • Não há suporte para o comando Pack em Componentes de C++ do Windows Runtime para criar um pacote NuGet.

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

Windowing

O SDK do Aplicativo Windows fornece uma classe AppWindow que desenvolve a classe prévia Windows.UI.WindowManagement.AppWindow anterior e a disponibiliza para todos os aplicativos do Windows, incluindo Win32, WPF e WinForms.

Novos recursos

  • AppWindow é uma API de janelas de alto nível que permite cenários de janelas fáceis de usar que se integram bem à experiência do usuário do Windows e a outros aplicativos. Representa uma abstração de alto nível de um contêiner gerenciado pelo sistema do conteúdo de um aplicativo. Esse é o contêiner no qual o conteúdo está hospedado e representa a entidade com a qual os usuários interagem quando redimensionam e movem seu aplicativo na tela. Para desenvolvedores familiarizados com o Win32, o AppWindow pode ser visto como uma abstração de alto nível do HWND.
  • DisplayArea representa uma abstração de alto nível de um HMONITOR, segue os mesmos princípios que o AppWindow.
  • DisplayAreaWatcher permite que um desenvolvedor observe as alterações na topologia de exibição e enumere as DisplayAreas definidas atualmente no sistema.

Para saber mais, consulte Gerenciar janelas de aplicativos.

Entrada

Essas são as APIs de entrada que dão suporte à WinUI e fornecem uma superfície de API de nível inferior para os desenvolvedores alcançarem interações de entrada mais avançadas.

Novos recursos

  • APIs de ponteiro: PointerPoint, PointerPointProperties e PointerEventArgs para dar suporte à recuperação de informações de evento de ponteiro com APIs de entrada do XAML.
  • API InputPointerSource: representa um objeto registrado para relatar a entrada do ponteiro e fornece cursor de ponteiro e manipulação de eventos de entrada para a API do SwapChainPanel da XAML.
  • API de cursor: permite que os desenvolvedores alterem o bitmap do cursor.
  • API do GestureRecognizer: permite que os desenvolvedores reconheçam determinados gestos, como arrastar, segurar e clicar quando forem fornecidas informações de ponteiro.

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 dá 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.
  • O uso direto da API do SDK da plataforma Windows.UI.Core.CoreDragOperation não funcionará com os aplicativos da WinUI.
  • 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.

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.

Importante

Se você estiver trabalhando em um aplicativo UWP, veja Migrar da UWP para o SDK do Aplicativo Windows.

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 a aplicativos da WinUI, que são 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: 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 da WinUI do Windows Forms e C#, declare Main como assíncrono, se necessário. Para aplicativos da WinUI C++ e WPF C#, não é possível declarar Main como assíncrono, portanto, em vez disso, mova a chamada de redirecionamento para outro thread para garantir que você não bloqueie o STA.
    • Para saber mais, consulte 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, consulte 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.
  • Esses bugs de instanciação única/múltipla serão corrigidos em um próximo patch de manutenção:
    • O redirecionamento appInstance não funciona quando compilado para x86
    • Registrar uma chave, cancelá-la e registrá-la novamente faz com que o aplicativo falhe

DWriteCore

O DWriteCore é a implementação de SDK do Aplicativo Windows de DirectWrite, que é a API do DirectX para renderização de texto de alta qualidade, fontes de estrutura de tópicos independentes de resolução e suporte completo de texto e layout Unicode. O DWriteCore é um tipo de DirectWrite que é executado em versões do Windows até o Windows 10 versão 1809 (10.0; Build 17763), e permite o uso em multiplataforma.

Características DWriteCore contém todos os recursos de DirectWrite, com algumas exceções.

Limitações importantes

  • DWriteCore não contém os seguintes recursos DirectWrite:
    • Fontes por sessão
    • Fontes de EUDC (caractere definido pelo usuário final)
    • APIs de streaming de fonte
  • O suporte à API de renderização de baixo nível é parcial.
  • O DWriteCore não interopera com Direct2D, mas você pode usar o IDWriteGlyphRunAnalysis e o IDWriteBitmapRenderTarget.

Para obter mais informações, consulte Visão geral do DWriteCore.

MRT Core

O MRT Core é uma versão simplificada do Sistema de Gerenciamento de Recursos do Windows moderno que é distribuído como parte do SDK do Aplicativo Windows.

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. Consulte o problema 1503 para obter mais informações.
  • Em projetos do .NET, quando um arquivo de recurso é adicionado ao projeto usando a interface do usuário do Visual Studio, os arquivos podem não ser indexados por padrão. Consulte o problema 1786 para obter mais informações. Para contornar esse problema, remova as entradas abaixo no arquivo CSPROJ:
    <ItemGroup>
        <Content Remove="<image file name>" />
    </ItemGroup>
    <ItemGroup>
        <PRIResource Remove="<resw file name>" />
    </ItemGroup>
    
  • Para aplicativos WinUI C++ não empacotados, o URI do recurso não é criado corretamente. Para contornar esse problema, adicione o seguinte no vcxproj:
    <!-- Add the following after <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> -->
    
    <PropertyGroup>
        <AppxPriInitialPath></AppxPriInitialPath>   
    </PropertyGroup>
    

Para obter mais informações, consulte Gerenciar recursos com o MRT Core.

Implantação

Novos recursos e atualizações

Limitações importantes

  • O empacotador do .NET para a API de Bootstrapper destina-se apenas ao uso 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.

Outras limitações e problemas conhecidos

  • 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.

  • Atualizar do .NET 5 para o .NET 6: ao atualizar na interface do usuário do Visual Studio, é possível encontrar erros de build. Como solução alternativa, atualize manualmente o arquivo de projeto TargetFrameworkPackage para o seguinte:

        <TargetFramework>net6.0-windows10.0.19041.0</TargetFramework> 
    
  • 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.

  • O VSIX de linguagem subsequente não é instalado no Visual Studio 2019 quando várias versões do Visual Studio 2019 são instaladas. Caso tenha várias versões do Visual Studio 2019 instaladas (por exemplo, Versão e Versão Prévia) e, em seguida, instalar o VSIX do SDK do Aplicativo Windows para C++ e C#, a segunda instalação falhará. Para resolver, desinstale as Ferramentas de Empacotamento MSIX de projeto único para o Visual Studio 2019 após o primeiro VSIX de idioma. Exiba este comentário para obter informações adicionais sobre esse problema.

  • 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 0.8

A versão mais recente disponível da linhagem 0.8.x do canal estável do SDK do Aplicativo Windows é a versão 0.8.12.

Observação

O SDK de Aplicativo do Windows anteriormente era conhecido pelo codinome Project Reunion. Alguns ativos do SDK na versão 0.8 e anteriores ainda usam o nome do código. Algumas áreas da documentação ainda usarão Project Reunion ao se referir a um ativo existente ou uma versão anterior especificada.

Versão 0.8.12

Essa é uma versão de manutenção do SDK do Aplicativo Windows que inclui correções importantes de bugs para a versão 0.8.0.

Observação

Para desenvolvedores do C#, uma das seguintes versões do SDK do .NET é necessária: 5.0.213, 5.0.407, 6.0.104, 6.0.202 (ou posterior). 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".

Correções de bug:

  • Corrigido o problema em que os aplicativos com SwapChainPanel ou WebView2 falhavam de forma imprevisível devido a uma violação de acesso.

Versão 0.8.11

Essa é uma versão de manutenção do SDK do Aplicativo Windows que inclui correções importantes de bugs para a versão 0.8.0.

Observação

Para desenvolvedores do C#, uma das seguintes versões do SDK do .NET é necessária: 5.0.213, 5.0.407, 6.0.104, 6.0.202 (ou posterior). 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".

Correções de bug:

  • Correção da regressão, fazendo com que o evento de foco perdido seja acionado ao selecionar texto usando o mouse.

Versão 0.8.10

Essa é uma versão de manutenção do SDK do Aplicativo Windows que inclui correções importantes de bugs para a versão 0.8.0.

Observação

Para desenvolvedores do C#, uma das seguintes versões do SDK do .NET é necessária: 5.0.213, 5.0.407, 6.0.104, 6.0.202 (ou posterior). 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".

Correções de bug:

  • Corrigido os problemas que faziam com que os aplicativos falhassem às vezes durante uma operação de arrastar e soltar.

Observação

O SDK do Aplicativo Windows 0.8.9 não foi lançado. A versão lançada diretamente após a versão 0.8.8 é 0.8.10.

Versão 0.8.8

Essa é uma versão de manutenção do SDK do Aplicativo Windows que inclui correções importantes de bugs para a versão 0.8.0.

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".

Correções de bug:

  • Correção de problemas de entrada por toque no TextBox em relação ao teclado virtual e à interação geral. Esses problemas também afetaram os atalhos de teclado. Para obter mais informações, consulte o problema 6291 no GitHub.
  • Corrigido o problema em que uma janela do aplicativo às vezes era mostrada como inativa quando ativa.
  • Corrigido o problema de desempenho causado pelo UIA (Automação da Interface do Usuário) em execução em processos externos.
  • Corrigido o problema de estabilidade do aplicativo com a entrada da caneta.
  • Corrigido o problema em que a renderização de ícones png em um menu é drasticamente atrasada devido ao UIA.

Versão 0.8.7

Esta é uma versão de manutenção do SDK do Aplicativo Windows que inclui várias atualizações de desempenho para aplicativos C#/.NET. Para atualizar para esta versão, referencie a versão mais recente do pacote do SDK do Windows. Para fazer isso, adicione a propriedade <WindowsSdkPackageVersion>10.0.<sdk_version>.24</WindowsSdkPackageVersion> ao arquivo .csproj com a versão do SDK que seu aplicativo está direcionando da propriedade TargetFramework. Por exemplo:

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

Esta versão da projeção do SDK do Windows estará disponível em uma próxima versão de manutenção do .NET 6. Depois que a atualização do SDK do .NET estiver disponível, remova a propriedade <WindowsSdkPackageVersion> do arquivo de projeto.

Se você não definir essa propriedade, visualizará um erro como: "Error: This version of Project Reunion requires WinRT.Runtime.dll version 1.6 or greater."

Versão 0.8.6

Esta é uma versão de manutenção do SDK do Aplicativo Windows que inclui várias melhorias de desempenho para aplicativos C#/.NET para a versão 0.8.0.

Para atualizar para esta versão do SDK do Aplicativo Windows, você precisará ter a atualização de dezembro do SDK do .NET mais recente instalada (confira Baixar o .NET e o .NET 5 atingirá o fim do suporte em 10 de maio de 2022). Caso não tenha a versão mínima necessária do SDK do .NET instalada, verá um erro como "Error: This version of Project Reunion requires WinRT.Runtime.dll version 1.4 or greater."

Correções de bugs

Para obter uma lista detalhada das melhorias de desempenho, confira as notas de versão do C#/WinRT 1.4.1.

Versão 0.8.5

Essa é uma versão de manutenção do SDK do Aplicativo Windows que inclui correções mais importantes de bugs para a versão 0.8.0.

Correções de bug

  • Corrigido o problema que estava causando falha nos aplicativos da WinUI usando a entrada de ponteiro .
  • Corrigido o problema que fazia com que os botões da barra de título (mínimo, máximo, fechar) não tivessem cantos arredondados em Windows 11.
  • Corrigido o problema que fazia com que as opções de layout de redimensionamento não aparecessem ao passar o mouse sobre o botão maximizar/restaurar no Windows 11.
  • Corrigido o problema que causava uma exceção de falha ao criar um objeto PointCollection . Para obter mais informações, consulte o problema 971 no GitHub.

As limitações e os problemas conhecidos da versão 0.8 também se aplicam à versão 0.8.5, a menos que marcados de outra forma na seção abaixo.

Versão 0.8.4

Essa é uma versão de manutenção do SDK do Aplicativo Windows que inclui correções mais importantes de bugs para a versão 0.8.0.

Correções de bug

  • Correções para barras de título personalizadas para que o ContentDialog não as cubra e os botões da barra de título sejam arredondados.
  • Correção de uma falha no processamento de imagens quando a escala de exibição é alterada.
  • Corrige bugs de recorte em que a interface do usuário desaparece ou é recortada incorretamente

As limitações e os problemas conhecidos da versão 0.8 também se aplicam à versão 0.8.4, a menos que marcados de outra forma na seção abaixo.

Versão 0.8.3

Essa é uma versão de manutenção do SDK do Aplicativo Windows que inclui correções mais importantes de bugs para a versão 0.8.0.

Correções de bug

O foco do teclado estava sendo perdido quando uma janela foi minimizada e restaurada, exigindo um clique do mouse para restaurar o foco.

As limitações e os problemas conhecidos da versão 0.8 também se aplicam à versão 0.8.3, a menos que marcados de outra forma na seção abaixo.

Versão 0.8.2

Essa é uma versão de manutenção do SDK do Aplicativo Windows que inclui correções mais importantes de bugs para a versão 0.8.0.

Correções de bug

  • O SDK do Aplicativo Windows e a WinUI 3 agora têm suporte no Visual Studio 2022 Versão Prévia 2 e posterior.
  • Para os aplicativos do .NET, é possível receber o seguinte erro ao passar uma matriz de enumerações: Object contains non-primitive or non-blittable data.
  • Gravar usando o painel de manuscrito dentro de uma caixa de texto causa uma falha
  • Ícones/imagens sempre são carregados no valor de escala de 100% em vez de com base no valor de escala do monitor
  • A coleta de lixo do EventSource<T> causa falha subsequente em cancelar a assinatura de manipuladores (consulte o problema no GitHub para obter mais detalhes)
  • Correção de segurança – consulte CVE-2021-34533 para obter mais detalhes.
  • SwapChainPanel.CompositionScaleChanged às vezes retornava valores incorretos de CompositionScale depois de alterar a escala de exibição

As limitações e os problemas conhecidos da versão 0.8 também se aplicam à versão 0.8.2, a menos que marcados de outra forma na seção abaixo.

Versão 0.8.1

Essa é uma versão de manutenção do SDK do Aplicativo Windows que inclui algumas correções importantes de bugs para a versão 0.8.0.

Correções de bug

  • O SDK do Aplicativo Windows não pode ser executado no build mais recente do Windows Insider
  • Falha em EditableComboBox ao inserir um valor que não aparece na lista suspensa
  • O WebView2 não permite que o usuário faça a guia depois que o foco tiver sido recebido
  • Qualificar totalmente o namespace Windows.Foundation.Metadata.DefaultOverload no código gerado pelo WinUI para evitar ambiguidade de namespace
  • Correção de segurança – consulte CVE-2021-34489 para obter mais detalhes.

As limitações e os problemas conhecidos da versão 0.8 também se aplicam à versão 0.8.1, a menos que marcados de outra forma na seção abaixo.

Versão 0.8.0 Estável

Novos recursos e atualizações

Esta versão dá suporte a todos os recursos estáveis do canal.

WinUI 3

Esta versão inclui muitas correções de bug e estabilização aprimorada na WinUI 3. Essas são todas as novas alterações na WinUI 3 desde o lançamento da WinUI 3 – Project Reunion 0.5:

  • O controle Dinâmico foi adicionado novamente e agora pode ser usado em qualquer aplicativo WinUI 3.

  • Todas as correções de bug do Project Reunion v0.5.5, v0.5.6 e v0.5.7 estão incluídas nesta versão.

  • Novas correções de bug, incluindo:

    • O aplicativo tinha uma falha quando o usuário clicava com o botão direito do mouse em TextBox
    • NavigationView causava falha na UWP, no Reunion 0.5 Versão Prévia
    • ProgressBar não mostra a diferença entre as opções Pausa e Erro
    • Falha no RichEditBox ao copiar/colar/alterar o estilo de texto
    • Os botões de legenda do Windows estão no local errado quando SetTitleBar não está definido ou está definido como nulo

    Para obter a lista completa de bugs abordados nesta versão, consulte nosso repositório do GitHub.

  • A API ColorHelper.ToDisplayName não está mais disponível.

  • As seguintes tipos foram removidos:

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

    Em vez disso, use Windows.Graphics.IGeometrySource2D e Windows.Graphics.IGeometrySource2DInterop.

  • Todos os tipos no namespace Microsoft.System foram movidos para o namespace Microsoft.UI.Dispatching, incluindo a classe DispatcherQueue.

  • A propriedade AcrylicBrush.BackgroundSource foi removida, pois HostBackdrop não há suporte como um BackgroundSource na WinUI 3.

Para obter mais informações sobre o WinUI, consulte Biblioteca do WinUI (Windows UI 3).

Para visualizar os controles e recursos da WinUI 3 em ação, clone e crie a Galeria de aplicativo WinUI 3 do GitHub ou baixar o aplicativo no Microsoft Store.

Para começar a desenvolver com o WinUI, confira os seguintes artigos:

DWriteCore

Esta versão do DWriteCore inclui os seguintes recursos novos e atualizados. O DWriteCore é introduzido e descrito na visão geral de DWriteCore.

Observação

DWriteCoreCreateFactory é funcionalmente igual à função DWriteCreateFactory exportada pela versão do sistema de DirectWrite. A função DWriteCore tem um nome diferente para evitar ambiguidade no caso de você vincular DWriteCore.lib e DWrite.lib.

Para referência de API DWriteCore e DirectWrite, consulte a Referência de API do DWriteCore e Referência de API do DirectWrite.

MRTCore

  • A Ação de Build para recursos é definida automaticamente ao adicionar o recurso ao projeto, reduzindo a necessidade de configuração manual do projeto.

Limitações

  • No momento, não há suporte para esta versão no Canal de Desenvolvimento do Programa Windows Insider. Isso foi corrigido na versão 0.8.1.

  • Aplicativos da área de trabalho (área de trabalho C# ou C++): esta versão tem suporte apenas para uso em aplicativos da área de trabalho (C++ ou C#) empacotados usando o MSIX. Para usar o SDK do Aplicativo Windows em aplicativos de área de trabalho não empacotados, use o canal de versão experimental.

Importante

Se você estiver trabalhando em um aplicativo UWP, veja Migrar da UWP para o SDK do Aplicativo Windows.

Problemas conhecidos

  • As ferramentas da WinUI 3, como Árvore Visual Dinâmica, Live Explorador de Propriedades Dinâmicas e Recarga Dinâmica na versão 0.8 e posterior, exigem o Visual Studio 2019 16.11 Versão prévia 3 e posterior.

  • Atualmente, os aplicativos que usam a WinUI 3 e o SDK do Aplicativo Windows 0.8 não podem usar bibliotecas de classes que usam o Project Reunion 0.5. Atualize as bibliotecas de classes para usar o SDK do Aplicativo Windows 0.8.

  • 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 deve ser definido como 18362 ou posterior. Para obter mais informações, consulte o problema do GitHub nº 921.

  • Encontrar uma falha ao alternar com frequência entre o modo claro e escuro.

  • Para os aplicativos do .NET, é possível receber o seguinte erro ao passar uma matriz de enumerações: Object contains non-primitive or non-blittable data.Isso foi corrigido na versão 0.8.2.

  • Para aplicativos do .NET, atualmente não há como recusar a indexação de uma imagem como um recurso de aplicativo usando a interface do usuário do Visual Studio. Para contornar isso, adicione um Directory.Build.targets (consulte Personalizar seu build – Visual Studio para obter instruções) ao projeto e remova as imagens da seguinte maneira:

    • Para remover imagens específicas (observe que o caminho relativo é necessário):

      <Project> 
      <ItemGroup> 
          <Content Remove="..\Bitmap1.bmp" />
      </ItemGroup>
      </Project>
      
    • Para remover imagens com base em metadados:

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

    Uma correção para esse problema está planejada para uma versão futura – nesse ponto, as soluções alternativas acima não serão mais necessárias.

Versão 0.5

A versão mais recente disponível da linhagem 0.5.x do canal estável do SDK do Aplicativo Windows é a versão 0.5.9.

Novos recursos e atualizações

Esta versão dá suporte a todos os recursos estáveis do canal.

Limitações e problemas conhecidos

Esta versão tem as seguintes limitações e problemas conhecidos:

  • Aplicativos da área de trabalho (área de trabalho C# ou C++): esta versão tem suporte apenas para uso em aplicativos da área de trabalho (C++ ou C#) empacotados usando o MSIX. Para usar o SDK do Aplicativo Windows em aplicativos de área de trabalho não empacotados, use o canal de versão experimental.
  • 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, consulte o problema conhecido no GitHub.

Importante

Se você estiver trabalhando em um aplicativo UWP, veja Migrar da UWP para o SDK do Aplicativo Windows.