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:
- Caso queira atualizar um aplicativo existente de uma versão mais antiga do SDK do Aplicativo Windows para uma versão mais recente, confira Atualizar projetos existentes para a versão mais recente do SDK do Aplicativo Windows.
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 umShouldConstrainToRootBounds="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 noresources.pri
do 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
eTabNavigation = Cycle
paraListView
eGridView
, 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. OItemsView
é semelhante aos controlesListView
eGridView
, mas é criado utilizando os componentesItemsRepeater
,ScrollView
,ItemContainer
eItemCollectionTransitionProvider
. Ele oferece a capacidade exclusiva de conectar implementações personalizadas deLayout
ouItemCollectionTransitionProvider
. Outra vantagem importante é a capacidade de alternar o layout em tempo real, preservando a seleção de itens. O controleScrollView
interno também oferece recursos que não estão disponíveis no controleListView
/GridView
doScrollViewer
, como a capacidade de controlar a animação durante rolagens programáticas.- Uma nova propriedade
ItemTransitionProvider
emItemsRepeater
(e no novo controleItemsView
) permite que você especifique um objetoItemCollectionTransitionProvider
para controlar as animações de transição nesse controle. Um métodoCreateDefaultItemTransitionProvider
também foi adicionado aLayout
, 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 controleItemsView
. - Uma nova propriedade
IndexBasedLayoutOrientation
emLayout
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étodoSetIndexBasedLayoutOrientation
(protegido). - Uma nova propriedade
VisibleRect
emVirtualizingLayoutContext
obtém o retângulo da janela de visualização visível dentro doFrameworkElement
associado aoLayout
. O método virtualVirtualizingLayoutContext.VisibleRectCore
protegido pode ser substituído para fornecer o valor que será retornado da propriedadeVisibleRect
.
- Uma nova propriedade
- A nova classe
LinedFlowLayout
é normalmente utilizada para dispor os itens do controle de coleçãoItemsView
. É 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 umIResourceManager
diferente para resolver URIs de recursos em cenários nos quais oResourceManager
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 propriedadeSystemBackdrop
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
eIsClosed
foram adicionados aDesktopAcrylicController
eMicaController
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 umDispatcherQueue
.- 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 controleTreeView
. - O novo controle
ScrollView
fornece uma nova alternativa aoScrollViewer
. Esse novo controle é altamente alinhado em comportamento e API com o controleScrollViewer
existente, mas é baseado emInteractionTracker
, tem novos recursos, como alterações de exibição orientadas por animação, e também foi projetado para garantir a funcionalidade completa deItemsRepeater
. 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, incluindoScrollPresenter
, fazem parte do modeloScrollView
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
- Ao utilizar
ExtendsContentIntoTitleBar = true
, os cliques no canto superior esquerdo da janela, por padrão, sempre mostram o menu da janela do sistema (Minimizar/Fechar/etc.) ao invés de permitir a entrada do ponteiro no conteúdo da janela. Isso, por exemplo, significa que um botão Voltar nessa área da barra de título não funcionará. Uma solução alternativa para esse problema é definirAppWindow.TitleBar.IconShowOptions = Microsoft.UI.Windowing.IconShowOptions.HideIconAndSystemMenu
no AppWindow da janela. - Existem novas exceções contínuas ao ocultar
ShouldConstrainToRootBounds="False"
popups/submenus. Isso inclui a ocultação de dicas de ferramentas, conforme relatado aqui: Ignorar uma dica de ferramenta gera 4 exceções nativas · Problema n.º 8699 · microsoft/microsoft-ui-xaml (github.com) - Na versão 1.4, os botões de legenda min./máx./fechar para
ExtendsContentIntoTitleBar = true
agora são desenhados pelo AppWindow ao invés do XAML. Isso foi projetado, mas pode afetar os aplicativos que estavam substituindo os estilos internos do XAML para ocultar ou fazer a personalização extra desses botões, como neste relatório: Não é possível ocultar o botão de legenda na barra de título. Problema n.º 8705 - microsoft/microsoft-ui-xaml (github.com) - No .NET 8, houve uma alteração interruptiva na forma como ele lida com o grafo identificador de runtime: [Alteração interruptiva]: Os projetos com destino ao .NET 8 e superior utilizarão, por padrão, um grafo RID menor e portátil. - Problema #36527 - dotnet/docs (github.com). Devido a esse problema e ao fato de o .NET 8 ainda não ter sido lançado oficialmente, o SDK do Aplicativo Windows 1.4 não dá suporte oficial ao .NET 8. Entretanto, se você ainda quiser direcionar a versão de pré-lançamento do .NET 8 com essa versão do SDK do Aplicativo, recomendamos as seguintes etapas:
- Recomenda-se definir UseRidGraph como true. Você também precisará atualizar a propriedade
<RuntimeIdentifiers>
no arquivo.csproj
para<RuntimeIdentifiers>win-x86;win-x64;win-arm64</RuntimeIdentifiers>
, bem como atualizar cada arquivoPropeties\*pubxml
para alternar dewin10
parawin
na propriedade<RuntimeIdentifier>
(por exemplo,<RuntimeIdentifier>win-x86</RuntimeIdentifier>
).
- Recomenda-se definir UseRidGraph como true. Você também precisará atualizar a propriedade
- Com o SDK do Aplicativo Windows 1.4, o destino
GenerateDeploymentManagerCS
emMicrosoft.WindowsAppSDK.DeploymentManager.CS.targets
foi renomeado paraGenerateBootstrapCS
. MenuFlyout
em segundo plano não utiliza o tema solicitado pelo aplicativo:- O texto do MenuFlyoutItem não está sincronizado com o tema do sistema. · Problema n.º 8678 · microsoft/microsoft-ui-xaml (github.com)
- versão prévia 1.4: o tema de fundo do submenu é derivado do tema do sistema e não de seu elemento associado · Problema n.º 8756 · microsoft/microsoft-ui-xaml (github.com)
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.
Tópicos relacionados
- Notas sobre a versão mais recente do canal de pré-visualização para o SDK de Aplicativo do Windows
- Notas sobre a versão do canal experimental mais recente para o SDK de Aplicativo do Windows
- Instalar ferramentas para o SDK do Aplicativo Windows
- Criar seu primeiro projeto WinUI 3 (SDK do Aplicativo Windows)
- Usar o SDK do Aplicativo do Windows em um projeto existente
- Visão geral da implantação
Windows developer