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

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.

Links importantes:

Versão de canal estável mais recente:

Downloads para o SDK do Aplicativo Windows

Observação

As extensões do Visual Studio do SDK de 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.4.7 (1.4.240802001)

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 ItemsRepeater não gerava itens suficientes se estivesse em um ShouldConstrainToRootBounds="false" pop-up mais alto ou mais largo que a janela principal.
  • Corrigida uma possível falha no desligamento se uma AnnotatedScrollBar atualização de rótulo estivesse pendente.

Versão 1.4.6 (1.4.240512000)

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.

  • Corrigida uma falha potencial ao processar a entrada.
  • Corrigido um problema em que uma operação de arrastar e soltar iniciada a partir de outro aplicativo pode não permitir as operações certas de Copiar/Mover/Vincular.
  • Corrigidas as informações do servidor de origem WinUI para depuração para apontar corretamente para o repositório GitHub microsoft-ui-xaml.
  • Corrigido um problema com a correção do problema #8857 do GitHub para mesclar corretamente resources.pri da biblioteca no resources.prido aplicativo.

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.

Recursos novos e atualizados e problemas conhecidos da 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 mais recentes do 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 bugs

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