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

Observação

As extensões do Visual Studio do aplicativo do Windows (VSIX) não são mais distribuídas como um download separado. Elas estão disponíveis no Visual Studio Marketplace dentro do Visual Studio.

Versão 1.5

Versão 1.5.1 (1.5.240311000)

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

  • Foi corrigido um problema em que aplicativos independentes falhavam ao compilar por não ser possível copiar "map.html".
  • Foi corrigido um problema em que MapControl não inicializava devido à rejeição de tokens válidos. Para obter mais informações, confira o n.º 9324 do GitHub.
  • Foi corrigido um problema em que MapControl era carregado com um fundo azul. Para obter mais informações, confira o n.º 9377 do GitHub.
  • Foi corrigido um problema em que clicar na divisa de um NavigationViewItem não expandia nem recolhia corretamente em um único clique. Isso também fazia com que os menus fossem exibidos como em branco ao clicar na divisa no modo PaneDisplayMode="Top". Para obter mais informações, confira n.º 9423 e n.º 9426 do GitHub.
  • Foi corrigido um problema em que tocar em um NavigationViewItem com caneta ou toque impedia que o item respondesse a qualquer entrada futura. Para obter mais informações, confira o n.º 9429 do GitHub.
  • Foi corrigido um erro ao clicar em um item na área NavigationView.PaneFooter. Para obter mais informações, confira o n.º 9396 do GitHub.
  • Foi corrigido um problema em que ícones em menus às vezes eram exibidos no lugar errado. Para obter mais informações, confira o n.º 9409 do GitHub.
  • Foi corrigido um problema em que o acrílico não aparecia nos menus até sair da janela e voltar. Para obter mais informações, confira o n.º 9406 do GitHub.
  • Foi corrigida uma falha que poderia ocorrer durante a inicialização do TextBox/RichEditBox. Para obter mais informações, confira o n.º 9216 do GitHub.
  • Foram corrigidas algumas exceções ruidosas que NavigationView gerava e capturava na destruição.
  • Foi corrigido um problema em que um gesto de "apertar para ampliar" às vezes aparecia como um movimento panorâmico ou toque devido ao disparo incorreto de uma mensagem PointerCaptureLost.

Versão 1.5

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

Em um aplicativo existente do SDK do Aplicativo Windows 1.4, é possível atualizar o pacote Nuget para 1.5.240227000 (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. Isso completa a proposta nº 8492 do GitHub.

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 (nesse caso, 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 sempre é desligado durante o estágio DispatcherQueue.FrameworkShutdownStarting).

Para obter mais informações, confira a documentação da classe WindowsXamlManager quando disponível.

Há uma diferença de comportamento em WindowsXamlManager.InitializeForCurrentThread():

  • No WinAppSDK 1.4, WindowsXamlManager.InitializeForCurrentThread() retorna uma instância exclusiva de um objeto WindowsXamlManager com cada chamada.
  • No WinAppSDK 1.5, WindowsXamlManager.InitializeForCurrentThread() retorna uma instância existente se já existir uma no thread. Close/Dispose() agora é ignorado.

Controle de mapas WinUI

O controle Maps do WinUI 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.

WinUI 3 Maps Control

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!

Novo controle SelectorBar

Na versão 1.5, adicionamos um novo controle SelectorBar para permitir que os usuários alternem entre várias exibições de dados. Esse controle era anteriormente conhecido como "SegmentedControl" em nosso roteiro 1.5.

WinUI 3 SelectorBar Control

Rótulos nos comandos principais CommandBarFlyout

Os visuais de CommandBarFlyout foram atualizados para exibir um rótulo de texto para os itens na área de comandos principais se a propriedade Label tiver sido definida no AppBarButton. Anteriormente, os comandos principais na área CommandBarFlyout exibiam apenas um ícone, mas agora eles podem mostrar um ícone e um rótulo para melhorar a usabilidade.

WinUI 3 CommandBarFlyout Labels

Suporte a WebView2 para ambiente/opções personalizadas

O controle WebView2 do WinUI agora expõe a capacidade de personalizar o objeto subjacente CoreWebView2 com CoreWebView2Environment e CoreWebView2ControllerOptions personalizados. Isso permite que o autor do aplicativo especifique um caminho alternativo a partir do qual carregar o WebView2Runtime, optar por usar um UserDataFolder diferente ou definir opções como IsPrivateModeEnabled e ScriptLocale.

Suporte para .NET 8

Adicionamos suporte para o .NET 8 em uma versão de manutenção 1.4 recente, mas isso ainda manteve o aviso para o uso de RIDs específicos da plataforma. Em 1.5, concluímos esse trabalho para que o aviso não esteja mais presente.

Depuração e disponibilidade de origem aprimoradas

Agora injetamos informações do servidor de origem do Github para código no repositório microsoft-ui-xaml em nossos símbolos públicos, permitindo que os depuradores baixem automaticamente o código-fonte. Também fizemos outras correções e melhorias em nossos símbolos em todo o WinAppSDK para melhorar a experiência de depuração.

Funcionalidade aprimorada para depuração de ciclos de layout

Depurar ciclos de layout em um aplicativo do WinUI pode ser um desafio, portanto, na versão 1.5, o objeto DebugSettings agora expõe opções para habilitar o registro em log aprimorado e pontos de interrupção para o processo de layout para facilitar a depuração e a correção de ciclos de layout no aplicativo.

Outros recursos novos do WinAppSDK

  • Suporte adicionado para o modelo de implantação PublishSingleFile. Para saber mais sobre o PublishSingleFile, consulte a documentação de implantação de arquivo único.
  • Melhorias adicionadas ao suporte ao leitor de tela, suporte a dimensionamento de texto e outros recursos de acessibilidade.
  • Várias melhorias de estabilidade e desempenho com base em nossa lista de pendências de bugs do GitHub.

Novos recursos sendo lançados separadamente

Novas versões do modelo do WinAppSDK do Visual Studio para C# e C++ estão sendo lançadas por meio do Visual Studio Marketplace e aparecerão algumas semanas após o lançamento da versão 1.5. Com a nova versão, os modelos agora podem ser lançados independentemente das versões do WinAppSDK, permitindo que tenhamos muito mais flexibilidade na obtenção de atualizações para os clientes.

Outros recursos planejados anteriormente

Na versão 1.5, avançamos nos recursos a seguir que anunciamos em nosso roteiro, mas não os concluímos. Eles continuarão no período da versão 1.6.

  • Janelas tabuladas
  • Suporte a arrastar e soltar para WebView2
  • Investigações sobre a exibição de tabela e controles de tinta

A iluminação dinâmica foi removida do roteiro por enquanto.

Problemas conhecidos

  • Ao usar bibliotecas que contêm recursos como arquivos .xaml, você pode encontrar uma mensagem de erro em runtime indicando que esses recursos não podem ser encontrados. Nesse caso, pode ser necessário inserir <ShouldComputeInputPris>true</ShouldComputeInputPris> no arquivo de projeto para garantir que esses recursos sejam incluídos.
  • Clicar na divisa de um NavigationViewItem não mais expande ou recolhe corretamente em um único clique. Clicar duas vezes ainda funciona, assim como clicar em outro lugar no NavigationViewItem.

Correções de bug

  • Corrigido um problema em que StackPanel aplicava espaçamento a itens recolhidos. Para obter mais informações, confira o issue n.º 916 do GitHub.
  • Corrigidos problemas com controles de rolagem que não funcionavam mais depois de fechar outra janela do aplicativo. Para obter mais informações, consulte os problemas nº 9292 e nº 9355 do GitHub.
  • Corrigida uma falha ao definir DebugSettings.EnableFrameRateCounter como true antes do primeiro quadro renderizado. Para obter mais informações, confira o issue n.º 2835 do GitHub.
  • Corrigido um possível erro de compilação para C++ em que alguns cabeçalhos não incluíam dependências necessárias. Observe que a alteração da ordem de #include pode afetar alguns aplicativos, como possivelmente causar um erro de compilação para IInspectable se o aplicativo estiver usando uma versão do C++/WinRT anterior a 2023. Para obter mais informações, confira o issue n.º 9014 do GitHub.
  • Corrigido um problema em que as associações ElementName não funcionavam dentro do ItemsRepeaterDataTemplate. Para obter mais informações, confira o issue n.º 560 do GitHub.
  • Corrigidas falhas ao executar um aplicativo no Visual Studio com a barra de ferramentas no aplicativo habilitada. O Visual Studio 17.8 Preview 2 ou posterior é necessário para obter totalmente as correções. Para obter mais informações, confira o issue n.º 8806 do GitHub.
  • Corrigido um problema em que AnnotatedScrollbar às vezes podia falhar ao rolar rapidamente.
  • Corrigido um problema em que o texto do menu às vezes ficava truncado.
  • Problema corrigido em que dicas de ensino não recebiam o devido foco. Para obter mais informações, confira o issue n.º 3257 do GitHub.
  • Problema corrigido que travava o aplicativo ao definir o TailVisibility de um TeachingTip como Recolhido na inicialização. Para saber mais, confira o problema n.º 8731 do GitHub.
  • Corrigido um problema com a forma como os arquivos PRI eram tratados ao usar bibliotecas. Para obter mais informações, confira o issue n.º 8857 do GitHub.
  • 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.
  • Corrigida uma falha ao usar um AccessKey para fechar uma janela. Para obter mais informações, confira o issue n.º 9002 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.
  • Corrigido um problema que provocava falha na inicialização dos aplicativos ao usar um NavigationViewItem personalizado. Para obter mais informações, confira o issue n.º 8814 do GitHub.
  • Corrigido um problema do NavigationView em que o botão de reticências gerava um erro incorretamente. Para obter mais informações, confira o issue n.º 8380 do GitHub.
  • Corrigido um problema em que um SystemBackdrop não era renderizado corretamente em um aplicativo com várias janelas. Para obter mais informações, confira o issue n.º 8423 do GitHub.
  • Corrigido um problema de duplicação ao inserir no início de um ObservableCollection. Para obter mais informações, confira o issue n.º 8370 do GitHub.

Versão 1.4

Versão 1.4.5 (1.4.240211001)

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

  • Corrigido um problema que podia travar aplicativos ao clicar em um botão do mouse enquanto rolava com a roda do mouse. Para obter mais informações, confira o issue n.º 9233 do GitHub.
  • Corrigido um problema com ativos duplicados ao fazer referência a uma cadeia de pacotes NuGet. Para obter mais informações, confira o issue n.º 8857 do GitHub.
  • Corrigidos vários BreadcrumbBar problemas, incluindo um vazamento de memória, uma falha quando o menu de reticências está vazio e o menu de reticências sendo restringido incorretamente dentro da janela.
  • Corrigida uma possível falha no desligamento ao liberar recursos gráficos.

Versão 1.4.4 (1.4.231219000)

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

  • Corrigido um issue de segurança de diagnóstico WinUI 3.
  • Corrigido um issue de entrada em que a caixa de senha não mostrava o teclado virtual quando ativado via toque. Para obter mais informações, confira o issue n.º 8946 do GitHub.
  • Corrigido um issue que fazia com que o tamanho do arquivo aumentasse Microsoft.UI.Xaml.Controls.dll inesperadamente.
  • Corrigido um issue CommandBarFlyout que poderia causar falhas ao definir o foco.
  • Suporte atualizado ao SDK do Aplicativo Windows para manipulação de ativos específicos do .NET 8 RID.
  • Corrigido um issue que fazia com que algumas cadeias de permuta fossem posicionadas ou esticadas incorretamente.

Versão 1.4.3 (1.4.231115000)

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

  • Corrigido um problema em que um menu podia aparecer sem um plano de fundo por um curto período.
  • Corrigida uma falha que pode ocorrer em cenários específicos de vários monitores.
  • Corrigido um problema em que um menu de contexto podia aparecer fora da tela.
  • Correção de um problema com estilos de janela e maximização do comportamento. Para obter mais informações, confira o issue n.º 8996 do GitHub.
  • Corrigido um problema com ilhas onde o foco poderia ser inesperadamente capturado por outro controle.
  • Corrigido um problema com a ordem de tabulação em NavigationView.
  • Corrigido um problema de renderização em que uma barra branca poderia ficar visível na parte superior da barra de título. Para obter mais informações, confira o issue n.º 8947 do GitHub.
  • Várias correções de desempenho.

Versão 1.4.2 (1.4.231008000)

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

  • Correção de um problema de falha no explorer.exe causado por excesso de memória e alocação de objeto.
  • Correção de um problema de interação da barra de título que impedia que o botão Voltar funcionasse corretamente.
  • Correção de um problema que fazia com que um aviso fosse gerado para um arquivo de origem sendo incluído várias vezes.
  • Correção de um problema que afeta o desempenho do menu de contexto.
  • Correção de um problema de atalho .lnk que fazia com que o .exe de destino apontasse sempre para o mesmo local para pacotes na pasta WindowsApps.
  • Correção de um problema de DWriteCore que afetava a renderização adequada do texto índico em determinadas fontes.
  • Correção de um problema em um Modo de Exibição de Lista que impedia a navegação adequada do teclado de e para itens selecionados aninhados com Tab/Shift + Tab.
  • Correção de um problema que interrompia a rolagem de itens do ComboBox por toque depois de expandir o ComboBox uma segunda vez. Para obter mais informações, confira o issue n.º 8831 do GitHub.
  • Correção de um problema em que os pacotes do WinAppSDK não incluíam os recursos localizados do WinUI para alguns idiomas.
  • Correção de uma inconsistência entre como o Explorador de Arquivos e o XAML exibem o idioma preferencial de um usuário.
  • Correção de um detalhe no Explorador de Arquivos que fazia com que uma linha fina aparecesse na guia ativa.
  • Correção de um problema em que alguns aceleradores de teclado fornecidos pela estrutura não estavam localizados corretamente. Para obter mais informações, confira o issue n.º 2023 do GitHub.
  • Correção de um problema com controles RepeatButton que estavam rolando repetidamente quando tocados.
  • Correção do instalador do WinAppSDK .exe para ter informações de versão de recurso adequadas.

Versão 1.4.1 (1.4.230913002)

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

  • Foram corrigidos os problemas de desempenho para melhorar o tempo até o primeiro quadro.
  • Foi corrigido um problema em que os menus não respeitavam RequestedTheme. Por exemplo, era possível que esse problema resultasse em texto branco em uma tela de fundo branca. Para obter mais informações, confira o issue n.º 8756 do GitHub.
  • Foi corrigido um problema que fazia com que os planos de fundo de acrílico às vezes se tornassem totalmente transparentes em alguns menus.
  • Foi corrigido um problema em que o XAML às vezes fazia com que o Windows repintasse desnecessariamente o papel de parede da área de trabalho.
  • Corrigido o suporte de TabNavigation = Local e TabNavigation = Cycle para ListView e GridView, que agora permite a navegação entre cabeçalhos e itens com TAB, além das teclas de seta.
  • Correção de algumas exceções barulhentas ao ignorar uma dica de ferramenta. Para obter mais informações, confira o issue n.º 8699 do GitHub.

Versão 1.4

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

Em um aplicativo existente do SDK do Aplicativo Windows 1.3, é possível atualizar o pacote Nuget para 1.4.230822000 (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.

Barra de título personalizada + Fusão da barra de título do AppWindow

A barra de título personalizada do WinUI 3 utiliza a implementação da barra de título do AppWindow, juntamente com as APIs NonClientInputPointerSource sob o capô do SDK do Windows 1.4. Como resultado, ambas as implementações da barra de título agora se comportam da mesma forma, com os mesmos recursos e limitações. Isso é totalmente compatível com as versões anteriores em todos os casos com suporte; qualquer aplicativo com uma barra de título personalizada se comportará como antes. No entanto, agora é mais fácil para os desenvolvedores do WinUI 3, que podem ser novos nas barras de título personalizadas, entenderem e utilizarem-nas aproveitando esses novos recursos:

  • Um cenário padrão melhor no qual o desenvolvedor não define um elemento de barra de título especificamente (substituindo a barra de título de fallback do WinUI 2)
  • Regiões de arrasto distintas na barra de título, permitindo que você crie várias regiões de arrasto e coloque controles clicáveis em qualquer parte da área não cliente (área da barra de título)
  • Regiões arrastáveis em todo o aplicativo que podem ser colocadas em qualquer lugar do aplicativo ou que devem fazer com que todo o aplicativo seja arrastável
  • Melhor suporte para temas que substitui o tema baseado em recursos
    • Como as regiões arrastáveis são transparentes, elas sempre seguem o tema do aplicativo
  • Mais personalização: oculte os botões de mínimo, máximo e fechar; coloque ícones do sistema na barra de título; ou faça com que diferentes regiões atuem como botões de legenda que recebem respostas NCHITTEST
  • Mais liberdade para o desenvolvedor, que permite misturar e combinar às APIs da barra de título do AppWindow, como utilizar APIs WinUI 3 de nível superior para a maioria dos cenários, mas com APIs do AppWindow misturadas para o controle de nível inferior.

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.

O XAML Islands não é mais experimental

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.

ItemsView

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.

  • 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 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.
  • 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.
  • A versão do SDK do WebView2 foi atualizada da 1661.34 para 1823.32.
  • 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.

Problemas conhecidos

Correções de bug

  • Foi corrigido um problema em que a chamada à API Microsoft.Windows.AppLifecycle.AppInstance.Restart("") causava o travamento de aplicativos descompactados. Para obter mais informações, confira o issue n.º 2792 do GitHub.
  • Foi corrigido um problema de falha do instalador introduzido na versão 1.4-experimental1. Para obter mais informações, confira o issue n.º 3760 do GitHub.
  • Foi corrigido um problema no qual o texto riscado não era removido corretamente em um TextBlock. Para obter mais informações, confira o issue n.º 1093 do GitHub.
  • Foi corrigido um problema que causava a navegação incorreta com Shift + Tab em um painel com TabFocusNavigation definido como "Uma vez". Para obter mais informações, confira o issue n.º 1363 do GitHub.
  • Foi corrigido um problema no C++/WinRT que impedia que {x:Bind} funcionasse corretamente com uma propriedade de um controle XAML nomeado. Para obter mais informações, confira o issue n.º 2721 do GitHub.
  • Foi corrigido um problema de AccessViolation de runtime nos aplicativos Desktop WinUI causado pela configuração DebugSettings.EnableFrameRateCounter = true. Para obter mais informações, confira o issue n.º 2835 do GitHub.
  • Foi corrigido um problema em que XamlTypeInfo.g.cpp não incluía os cabeçalhos necessários. Para obter mais informações, confira o issue n.º 4907 do GitHub.
  • Foi corrigido um problema de falha causado pela entrada simultânea de vários toques e do mouse. Para obter mais informações, confira o issue n.º 7622 do GitHub.
  • Foi corrigido o problema que impedia a rolagem de uma janela ativa do aplicativo WinUI 3 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, confira o issue n.º 8764 do GitHub.
  • Foi corrigida uma falha ao tentar criar uma subclasse MediaPlayerElement.
  • Foram corrigidos alguns problemas de falha e vazamento de memória em TreeView.
  • Foi corrigido um problema de travamento do aplicativo que poderia ocorrer ao utilizar o teclado para navegar em RadioButtons.
  • Correção de uma falha ao utilizar o teclado para navegar em um PipsPager.
  • Foi corrigida a escala do conteúdo WebView2 com a configuração de acessibilidade "Tamanho do texto" no aplicativo Configurações.
  • Correção de uma falha que poderia ocorrer quando as animações estavam sendo executadas quando a tela estava desligada.
  • Foi 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.

  • Foi corrigido um problema no qual 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, confira o issue n.º 3740 do GitHub.
  • Foi corrigido o problema que afetava o posicionamento do menu de contexto no SDK do Aplicativo Windows 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.
  • Foi corrigido um problema no qual os ícones de fonte não estavam sendo espelhados corretamente em idiomas da direita para a esquerda. Para obter mais informações, confira o issue n.º 7661 do GitHub.
  • Foi corrigido um problema que causava a falha de um aplicativo ao ser desligado quando os recursos ficavam inoperantes na ordem incorreta. Para obter mais informações, confira o issue n.º 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 obter mais informações, confira o issue n.º 8281 do GitHub.
  • Correção de um problema com hiperlinks e toque em um RichTextBlock. Para obter mais informações, confira o issue n.º 6513 do GitHub.
  • Correção de um problema com rolagem e touchpads no WebView2. Para obter mais informações, confira o issue n.º 7772 do GitHub.
  • 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 obter mais informações, confira o issue n.º 3554 do GitHub.
  • 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, confira o issue n.º 8416 do GitHub.
  • 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, confira o issue n.º 3689 do GitHub.
  • 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 existente do SDK do Aplicativo Windows 1.2, é possível atualizar o pacote Nuget para 1.3.230331000 (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, 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. 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 estáticas ThemeResource. Para obter mais informações, confira 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 refazer upload da 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, confira o issue n.º 3266 do GitHub.

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, confira o issue n.º 3376 do GitHub.
  • 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, confira o issue n.º 3300 do GitHub.
  • 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, confira os issues n.º 5659, n.º 3205, n.º 3323, n.º 3322 e n.º 3143 do GitHub.

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, confira os issues n.º 7260 e n.º 7239 do GitHub.
  • 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, confira o issue n.º 7766 do GitHub.

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 upload 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, confira o issue n.º 3168 do GitHub.
  • Corrigido o problema que causava efeitos de elasticidade e curvas de animação ausentes ao rolar com um touchpad. Para obter mais informações, confira o issue n.º 7874 do GitHub.
  • 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, confira o issue n.º 7208 do GitHub.
  • 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, confira os issues n.º 1259 e n.º 5221 do GitHub.

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, confira os issues n.º 7911 e n.º 3117 do GitHub.

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# (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. 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 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 WIP (Versão Prévia do Windows Insider) superior ou igual a 25217 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.
  • 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, 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.

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

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, confira 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, 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 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, confira 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 (confira 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, confira o issue n.º 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, confira o issue n.º 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, confira o issue n.º 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, confira o issue n.º 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, confira o issue n.º 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, confira o issue n.º 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, confira 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, confira o issue n.º 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, confira o issue n.º 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, confira 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, confira o issue n.º 1032 no GitHub.
  • Adicionada marca <auto-generated> em arquivos C# para evitar avisos StyleCop. Para obter mais informações, confira o issue n.º 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, confira o issue n.º 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, confira o issue n.º 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, confira o issue n.º 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, confira o issue n.º 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, confira o issue n.º 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 e 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 RegisterApplicationRestart existente para se registrar no sistema operacional e 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 sequência 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 de preview 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, 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.
  • 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, confira o issue n.º 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, confira o issue n.º 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 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.
  • 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 (confira 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, confira o issue n.º 2459 do 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, confira o issue n.º 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 (confira 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, confira o issue n.º 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, confira o issue n.º 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, confira o issue n.º 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, confira o issue n.º 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, confira o issue n.º 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, confira os issues n.º 5615 e n.º 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, confira os issues n.º 6333 e n.º 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, confira o issue n.º 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, confira 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 issues) que incluem correções na janela de vidro usada para operações de arrastar e 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 e Live Visual Tree para aplicativos empacotados WinUI têm suporte no Visual Studio 2022 Preview 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 do 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 runtime 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, confira:

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, confira 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, 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.
  • Esses bugs de instância ú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

  • O DWriteCore não contém os seguintes recursos de 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, confira 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 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 do Aplicativo 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 Fazer download do .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, confira o issue n.º 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 (confira o issue no GitHub para obter mais detalhes)
  • Correção de segurança – confira 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
  • O namespace Windows.Foundation.Metadata.DefaultOverload totalmente qualificado no código gerado pela WinUI para evitar ambiguidade de namespace
  • Correção de segurança – confira 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, confira 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, confira 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 fazer download do 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, confira 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, confira o issue n.º 921 do GitHub.

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