Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Você pode escolher entre os canais Estável, Visualização e Experimental , dependendo de suas necessidades de desenvolvimento, desde builds de produção confiáveis até acesso antecipado a recursos futuros. Saiba mais sobre canais de versão.
Para visualizar o runtime atualizado e o MSIX, confira Downloads para o SDK do Aplicativo Windows.
Versão 1.6.9 (1.6.250602001)
Correções
- Correção de uma possível falha em WindowChrome::SetTitleBar ao fechar uma janela. Para obter mais informações, consulte o problema do GitHub nº 9203.
Versão 1.6.8 (1.6.250430001)
Suporte à criação de pasta ApplicationData.MachinePath
ApplicationData.MachineFolder agora é mais fácil de usar no Windows >=10.0.26100.0 (Ge). O Windows criará a pasta Machine quando um pacote que manifesta o suporte de aceitação for adicionado a um sistema se o SDK do Aplicativo do Windows 1.6.8 estiver presente no sistema. Para obter mais detalhes, consulte a especificação ApplicationData.
Correções
- Corrigida a telemetria do PackageDeploymentManager para capturar corretamente o status de conclusão. Para obter mais informações, consulte o problema do GitHub nº 5297.
- Correção de uma falha ao usar a entrada de caneta em um aplicativo x86.
- Correção de uma possível falha se a janela já estiver destruída quando o WinUI estiver tentando inicializar para rolagem.
- Corrigido a definição de WINDOWSAPPSDK_RELEASE_PATCH e os valores de Microsoft::WindowsAppSDK::Release::Patch no WindowsAppSDK-VersionInfo.h para que não sejam sempre 0. A definição agora é a data no formato yymmdd do build, e o valor do Patch é a data no formato mmdd. Essa alteração fornece melhores informações de runtime sobre a versão que está sendo usada sem alterar nenhum tamanho de variável ou o esquema de versão.
Versão 1.6.7 (1.6.250402001)
Correções
- Melhorou a telemetria para cenários de falha em
WindowsAppRuntimeInstall-<arch>.exe. Para obter mais informações, consulte o problema do GitHub nº 5291. - Corrigido um problema em que a entrada de ponteiro parava de funcionar ao usar teclas de direção simultaneamente. Para obter mais informações, consulte o problema do GitHub nº 10126.
- Correção de um problema em que os aplicativos na área de trabalho remota param de responder à entrada do ponteiro. Para obter mais informações, consulte o problema do GitHub nº 10009. (Essa é a mesma correção para entrada de ponteiro mais teclas de seta, devido à área de trabalho remota enviar automaticamente algumas entradas de teclas durante a alternância de ida e volta.)
- Correção de uma possível falha ao tentar restaurar o foco se um evento de ativação de janela for entregue para uma janela que está fechando.
- Foi corrigida uma regressão de desempenho introduzida na versão 1.6 do SDK do Aplicativo do Windows devido à falta de algumas otimizações de linkagem nos binários WinUI.
- Correção de um pequeno problema de desempenho ao criar várias janelas/ilhas WinUI.
- Corrigido uma possível falha de sistema se
ProgressBar::SetProgressBarIndicatorWidthfor chamado num ProgressBar que não está na árvore. - Correção de uma possível falha causada pela reentrada, às vezes disparada por
CPopup::EnsureBridgeClosed. - Correção de uma possível falha ao fechar um pop-up devido ao
CUIElement::FlushPendingKeepVisibleOperationsuso de uma coleção de filhos nula. - Corrigido
PackageDeploymentManager.EnsurePackage*Readypara garantir a substituição de versão. Para obter mais informações, consulte o problema do GitHub nº 5225.
Versão 1.6.6 (1.6.250228001)
Correções
Esta é uma versão de manutenção do SDK do Aplicativo do Windows que inclui correções de bug críticas para a versão 1.6.- Foi corrigido um problema em que uma janela secundária que enviava WM_NCMOUSELEAVE para a janela principal resultava em um loop que bloqueava novos eventos de entrada do mouse.
- Corrigido um travamento que ocorreria durante o próximo evento AppWindow.Changed após uma falha no processo do WebView2.
- Correção de uma possível falha ao usar uma ferramenta de acessibilidade e fechar uma janela.
- Foi corrigido um problema em que uma caixa de texto não aceitava a entrada de teclas se o foco fosse dado ao clicar na área do botão limpar da caixa de texto. Para obter mais informações, consulte o problema do GitHub nº 7703.
- Corrigido um problema em que uma dica de ferramenta não era mostrada para o botão Minimizar na barra de título ao usar
ExtendsContentIntoTitleBar=true. Para obter mais informações, consulte o problema do GitHub #9149.
Esta versão inclui as seguintes novas APIs:
Uma nova IsPlaceholderContent propriedade em WidgetInfo e WidgetUpdateRequestOptions habilita que um provedor de Widget indique que ele exibirá o conteúdo do espaço reservado se renderizado. Por exemplo, um Widget que mostra informações meteorológicas deve definir IsPlaceholderContent como true se o usuário ainda não tiver especificado um local meteorológico e o Widget estiver apenas mostrando informações meteorológicas para um local padrão como Seattle. Quando um Widget é marcado como espaço reservado, determinados hosts podem decidir ocultar o Widget ou priorizar outros Widgets.
Microsoft.Windows.Widgets.Providers
WidgetInfo
IsPlaceholderContent
WidgetUpdateRequestOptions
IsPlaceholderContent
Versão 1.6.5 (1.6.250205002)
Correções de bug
– correção de vários problemas de vazamento de memória.Versão 1.6.4 (1.6.250108002)
Correções de bugs
– Corrigimos um problema com o realce da seleção de texto em uma caixa de texto de várias linhas. Para obter mais informações, consulte o problema do GitHub [nº 9965](https://github.com/microsoft/microsoft-ui-xaml/issues/9965). - Corrigido um problema em que o pacote DDLM às vezes não era instalado, impedindo a inicialização de aplicativos não empacotados. Para obter mais informações, consulte o problema do GitHub [nº 3855](https://github.com/microsoft/WindowsAppSDK/issues/3855). - Corrigido um possível travamento em Detours em alguns cenários. Para obter mais informações, consulte o problema do GitHub [nº 4937](https://github.com/microsoft/WindowsAppSDK/pull/4937). - Corrigido outro problema potencial em que um menu de um CommandBar poderia abrir incorretamente para cima em vez de para baixo quando o CommandBar estiver na parte inferior da janela. - Correção de uma possível falha ao executar o hardware gráfico mais antigo. - Correção de uma possível falha no tratamento de eventos de ponteiro ao fechar uma janela. - Correção de uma possível falha causada por 'CUIAWindow::InitIds' às vezes ativando a reentrância. - Correção de uma possível falha ao usar o evento 'CompositionCapabilities.Changed'. - Corrigido um problema com alguns caracteres Unicode exibidos como quadrados em TextBox/RichEditBox. - Corrigido o tratamento `PackageDeploymentManager.EnsurePackage*Async()` de `options.RegisterNewerIfAvailable`. Para obter mais informações, consulte o problema do GitHub [nº 4864](https://github.com/microsoft/WindowsAppSDK/issues/4864).Versão 1.6.3 (1.6.241114003)
Correções
Esta é uma versão de manutenção do SDK do Aplicativo do Windows que inclui correções de bug críticas para a versão 1.6. - Corrigido um problema em que a leitura da propriedade 'AppWindow.ExtendsContentIntoTitleBar' ativa a renderização da barra de título personalizada. Para obter mais informações, consulte o problema do GitHub [nº 9988](https://github.com/microsoft/microsoft-ui-xaml/issues/9988). - Correção de uma possível falha durante a destruição de um 'TextBox'/'RichEditBox'. Para obter mais informações, consulte o problema do GitHub [#9070](https://github.com/microsoft/microsoft-ui-xaml/issues/9070). - Corrigido um problema em que 'PackageDeploymentManager.IsPackageReadyOrNewerAvailable()' falhava. Para obter mais informações, consulte o problema do GitHub [nº 4817](https://github.com/microsoft/WindowsAppSDK/issues/4817). - Corrigido um problema em que 'ScrollViewer' vazaria. - Foi adicionada a detecção para um cenário raro em que o aplicativo para de renderizar e nunca se recupera. - Corrigido um problema em que 'PackageDeploymentManager.RegisterPackageSetAsync()' exigia URI quando deveria ser opcional registrar pelo PackageFamilyName. - Corrigido um problema que impedia que os aplicativos fossem instalados ou desinstalados. Para obter mais informações, consulte o problema do GitHub [nº 4881](https://github.com/microsoft/WindowsAppSDK/issues/4881).Esta versão inclui as seguintes novas APIs que permitem que os provedores de Widgets incorporem conteúdo da Web em seus Widgets:
Microsoft.Windows.Widgets.Providers
IWidgetManager2
IWidgetProviderMessage
IWidgetResourceProvider
WidgetManager
SendMessageToContent
WidgetMessageReceivedArgs
WidgetResourceRequest
WidgetResourceRequestedArgs
WidgetResourceResponse
Versão 1.6.1 (1.6.240923002)
Bugfixes
- Corrigida uma falha ao usar FocusVisualKind.Reveal(). Para obter mais informações, consulte o problema #9966 do GitHub.
- Corrigidas exceções C++ ruidosas do Bcp47Langs.dll. Para obter mais informações, consulte o problema #4691 do GitHub. Observe que essa correção remove a sincronização com
Windows.Globalization.ApplicationLanguages.PrimaryLanguageOverride.- Corrigido um problema em que um evento extra
Unloadedera gerado imediatamente após mostrar umContentDialog. Para obter mais informações, consulte o problema #8402 do GitHub.- Foi corrigido um problema em que um menu da CommandBar podia ser aberto incorretamente, mesmo quando havia espaço para que ele fosse aberto para baixo.
- Corrigidos alguns problemas em que a entrada em as regiões
InputNonClientPointerSourcenão era tratada corretamente quando a janela principal estava executada no modo da direita para a esquerda.- Corrigida a verificação em tempo de compilação para a versão da estrutura do SDK do Windows para lidar com o nome da estrutura ligeiramente diferente usado para o .NET 9.
Versão 1.6
Alterações de projeto do C++
Ao atualizar um projeto C++ para 1.6, você precisará adicionar uma referência de projeto ao
Microsoft.Web.WebView2pacote. Se você atualizar por meio do Gerenciador de Pacotes NuGet no Visual Studio, essa dependência será adicionada para você.
Alterações de projeto em C#
Na versão 1.6, os aplicativos gerenciados que usam o Windows App SDK exigem Microsoft.Windows.SDK.NET.Ref
*.*.*.38ou posterior, que pode ser especificado por meio de WindowsSdkPackageVersion em seu arquivocsproj. Por exemplo:<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>WinExe</OutputType> <TargetFramework>net8.0-windows10.0.22621.0</TargetFramework> <TargetPlatformMinVersion>10.0.17763.0</TargetPlatformMinVersion> <WindowsSdkPackageVersion>10.0.22621.38</WindowsSdkPackageVersion> <PropertyGroup> ...Além disso, os aplicativos gerenciados do SDK do Aplicativo Windows devem ser atualizados para Microsoft.Windows.CsWinRT
2.1.1(ou posterior).
Observação
Essas referências manuais não serão mais necessárias quando a próxima atualização de manutenção do SDK do .NET for lançada.
Suporte a AOT nativo
![]()
A propriedade do projeto .NET
PublishAotagora tem suporte para compilação nativa antecipada. Para obter detalhes sobre o AOT nativo, consulte Implantação do AOT Nativo. Como o AOT se baseia no suporte ao corte, grande parte das seguintes orientações relacionadas ao corte também se aplica ao AOT.Para obter suporte ao
PublishAote ao corte, além das alterações no projeto C# descritas na seção anterior, você também precisará de uma referência de pacote para Microsoft.Windows.CsWinRT2.1.1(ou posterior) para habilitar o gerador de origem do pacote até que a próxima atualização de manutenção do .NET SDK seja lançada, quando ela não será mais necessária.Para obter mais informações, consulte o documento de suporte ao CsWinRT Trimming/AOT e as Notas da versão do CsWinRT 2.1.1.
Como o SDK do Aplicativo Windows invoca destinos de publicação durante a implantação do F5, recomendamos habilitar
PublishAotno momento da restauração do NuGet adicionando isso ao arquivocsproj:<PublishAot>true</PublishAot>
Resolvendo problemas de AOT
Nessa versão, o desenvolvedor é responsável por garantir que todos os tipos estejam corretamente enraizados para evitar o corte (como no caso do alvo
{Binding}baseado em reflexão). Versões posteriores aprimorarão o C#/WinRT e o compilador de XAML para automatizar o enraizamento sempre que possível, alertar os desenvolvedores sobre os riscos de corte e fornecer mecanismos para solucioná-los.Classes parciais
C#/WinRT também inclui suporte a
PublishAotna versão 2.1.1. Para habilitar uma classe para publicação AOT com C#/WinRT, ela deve primeiro ser marcada comopartial. Isso permite que o analisador de origem AOT do C#/WinRT atribua as classes para análise estática. Somente as classes (que contêm métodos, os destinos de corte) exigem esse atributo.Erro de código não seguro
O gerador de código-fonte CsWinRT pode gerar código que faça uso de
unsafe. Se você encontrar esse erro durante a compilação ou um aviso de diagnóstico para ele (CS0227 para "Código não seguro só pode aparecer se compilar com /unsafe"), defina EnableUnsafeBlocks como true. Para obter mais informações, consulte o problema do GitHub CsWinRT #1721.WebView2 ainda não compatível com AOT
As projeções do WebView2 na
Microsoft.Web.WebView2versão do pacote 1.0.2651.64 ainda não são compatíveis com AOT. Isso será corrigido em uma versão futura doMicrosoft.Web.WebView2pacote, que você pode referenciar em seu projeto.Técnicas Sem Reflexão
Para habilitar a compatibilidade AOT, as técnicas baseadas em reflexão devem ser substituídas por serialização tipada estaticamente, AppContext.BaseDirectory, typeof() etc. Para obter detalhes, consulte Introdução aos avisos de corte.
Tipos de Rooting
Até que o suporte completo para
{Binding}seja implementado, os tipos podem ser preservados do corte da seguinte maneira:Dado o projeto
Pque consome o assemblyAcom o tipoTno namespaceN, que é referenciado apenas dinamicamente (normalmente cortado),Tpode ser preservado por meio de:
P.csproj:<ItemGroup> <TrimmerRootDescriptor Include="ILLink.Descriptors.xml" /> </ItemGroup>
ILLink.Descriptors.xml:<?xml version="1.0" encoding="utf-8"?> <linker> <assembly fullname="A"> <type fullname="N.T" preserve="all" /> </assembly> </linker>Para obter a sintaxe completa da expressão XML dos descritores raiz, consulte Descritores Raiz.
Observação
Os pacotes de dependência que ainda não adotaram o suporte AOT podem apresentar problemas de tempo de execução.
Controle de versão do WebView2 desacoplado
O SDK do Aplicativo Windows agora consome o SDK do Edge WebView2 como uma referência NuGet em vez de inserir uma versão codificada do SDK do Edge WebView2. O novo modelo permite que os aplicativos escolham uma versão mais recente do
Microsoft.Web.WebView2pacote em vez de se limitarem à versão com a qual o SDK do Aplicativo Windows foi criado. O novo modelo também permite que os aplicativos façam referência a pacotes NuGet que também fazem referência ao SDK do Edge WebView2. Para obter mais informações, consulte o problema #5689 do GitHub.
Novas APIs de implantação de pacote
A API de Gerenciamento de Pacotes recebeu vários aprimoramentos, incluindo Is*ReadyOrNewerAvailable*(), EnsureReadyOptions.RegisterNewerIfAvailable, Is*Provisioned*(), IsPackageRegistrationPending() e várias correções de bugs. Consulte PackageManagement.md e Pull Request #4453 para obter mais detalhes.
Tear-out da guia TabView aprimorada
![]()
TabViewsuporta um novo modoCanTearOutTabsque proporciona uma experiência aprimorada ao arrastar guias e criar uma nova janela. Quando essa nova opção está ativada, arrastar a guia é muito parecido com a experiência de arrastar a guia no Edge e no Chrome, onde uma nova janela é criada imediatamente durante o arrasto, permitindo que o usuário a arraste para a borda da tela para maximizar ou ajustar a janela em um movimento suave. Essa implementação também não usa APIs de arrastar e soltar, portanto, não é afetada por nenhuma limitação nessas APIs. Notavelmente, a remoção de guias é suportada em processos executados com privilégios elevados como Administrador.
Outras alterações notáveis
- Adicionada uma nova
ColorHelper.ToDisplayName()API, preenchendo essa lacuna da UWP.- Adicionada uma nova
Microsoft.Windows.Globalization.ApplicationLanguagesclasse, que inclui um novoPrimaryLanguageOverriderecurso. Para obter mais informações, consulte o problema #4523 do GitHub.ItemsWrapGridnão selado. Essa deve ser uma alteração compatível com as versões anteriores.PipsPagersuporta um novo modo em que pode circular do primeiro ao último item.
![]()
RatingControlagora é mais personalizável, movendo algumas propriedades de estilo codificadas para recursos de tema. Isso permite que os aplicativos substituam esses valores para personalizar melhor a aparência do RatingControl.![]()
- O WinUI 3 mudou para o modelo tipográfico para seleção de fonte em vez do modelo legado de peso/largura/estilo. O modelo tipográfico é necessário para algumas fontes mais recentes, incluindo Segoe UI Variable, e permite recursos de fonte aprimorados. Algumas fontes mais antigas que dependem do modelo de peso/expansão/estilo para seleção podem não ser encontradas com o modelo tipográfico.
Problemas conhecidos
- Se o depurador estiver configurado para interromper todas as exceções do C++, ele interromperá algumas exceções ruidosas na inicialização do código BCP47 (Globalização do Windows). Para obter mais informações, consulte o problema #4691 do GitHub.
- Os pacotes de biblioteca de componentes que fazem referência ao pacote do SDK do Aplicativo windows 1.6 não obterão corretamente o conteúdo do pacote WebView2 referenciado. Para obter mais informações, consulte WebView2Feedback #4743. Uma solução alternativa é adicionar uma referência direta ao
Microsoft.Web.WebView2pacote quando necessário.- Às vezes, os aplicativos compilados com o Native AOT podem apresentar um problema de suspensão após a navegação na página devido a uma condição de corrida no thread GC do tempo de execução do .NET. Para obter mais informações, consulte .NET issue #104582.
- A versão inicial da versão 1.6.0 introduziu um problema com uma de nossas dependências que esperamos que seja resolvido em uma versão futura do SDK do .NET. Se você tiver um erro com a versão de sua referência de Microsoft.Windows.SDK.NET, precisará referenciar explicitamente a versão do SDK do .NET especificada pela sua mensagem de erro. Por exemplo, se o erro disser que você precisa da versão 10.0.19041.38, adicione o seguinte ao seu
.csprojarquivo:
<WindowsSdkPackageVersion>10.0.19041.38</WindowsSdkPackageVersion>.
Correções
- Corrigida uma falha ao definir
InfoBar.IsOpenem .xaml. Para obter mais informações, consulte o problema #8391 do GitHub.- Corrigido um problema em que os elementos HTML perdiam a captura do ponteiro quando o mouse se movia para fora dos
WebView2limites. Para obter mais informações, consulte o problema #8677 do GitHub.- Corrigido um problema em que arrastar e soltar em um submenu com
ShouldConstrainToRootBounds=falsenão funcionava. Para obter mais informações, consulte o problema #9276 do GitHub.- Corrigido um problema em que
ms-appx://referências não funcionavam quandoPublishSingleFileestava ativado. Para obter mais informações, consulte o problema #9468 do GitHub.- Corrigido um problema em que os símbolos do depurador não estavam funcionando corretamente para alguns binários. Para obter mais informações, consulte o problema #4633 do GitHub.
- Corrigido uma possível falha ao subclassificar
NavigationView.- Corrigido um problema em que as bordas da tabela em um
RichEditBoxnão eram apagadas corretamente ao rolar ou reduzir o tamanho da tabela.- Foi corrigido um problema em que o submenu de
MediaTransportControlstinham um fundo totalmente transparente.- Foi corrigido um problema em que o arrastar em um WebView2 falhava ou caía no local errado em fatores de escala de exibição diferentes de 100% ou quando a escala de texto do sistema estava habilitada.
- Corrigido um problema em que
TextBox/RichEditBoxnão anunciava às ferramentas de acessibilidade quando a entrada era bloqueada devido ao limiteMaxLength.- Corrigidos alguns problemas relacionados ao manuseio de cenários personalizados da barra de título. Para obter mais informações, consulte os problemas do GitHub #7629, #9670, #9709 e #8431.
- Corrigido um problema em que
InfoBadgeo ícone não estava visível. Para obter mais informações, consulte o problema #8176 do GitHub.- Corrigido um problema com ícones às vezes exibidos na posição errada em
CommandBarFlyout. Para obter mais informações, confira o issue n.º 9409 do GitHub.- Corrigido um problema com o foco do teclado nos menus ao abrir ou fechar um submenu. Para obter mais informações, consulte o problema #9519 do GitHub.
- Corrigido um problema com
TreeViewao usar o estado incorreto deIsExpandedao reciclar itens. Para obter mais informações, consulte o problema #9549 do GitHub.- Corrigido um problema ao usar uma vinculação ElementName em um
ItemsRepeater.ItemTemplate. Para obter mais informações, consulte o problema #9715 do GitHub.- Corrigido um problema em que, às vezes, o primeiro item em um
ItemsRepeatertinha uma posição incorreta. Para obter mais informações, consulte o problema #9743 do GitHub.- Corrigido um problema com
InputNonClientPointerSourceàs vezes interrompendo a entrada nos botões min/max/close. Para obter mais informações, consulte o problema #9749 do GitHub.- Corrigido um erro de compilação ao usar Microsoft.UI.Interop.h com clang-cl. Para obter mais informações, consulte o problema #9771 do GitHub.
- Corrigido um problema em que o evento
CharacterReceivednão funcionava noComboBox/TextBox. Para obter mais informações, consulte o problema #9786 do GitHub.- Corrigido um problema em que eventos duplicados
KeyUperam gerados para teclas de seta e tab. Para obter mais informações, consulte o problema #9399 do GitHub.- Corrigido um problema em que o
PowerManager.SystemSuspendStatusChangedevento era inutilizável para obter oSystemSuspendStatus. Para obter mais informações, consulte o problema #2833 do GitHub.- Corrigido um problema em que o foco inicial do teclado não era dado corretamente a um
WebView2quando esse era o único controle na janela.- Corrigido um problema ao usar
ExtendsContentIntoTitleBar=trueem que os botões Mín/Máx/Fechar não apareciam corretamente na Automação da Interface do Usuário, o que impedia o Acesso por Voz de mostrar números para esses botões.- Foi corrigido um problema em que um aplicativo poderia travar em uma verificação de bloqueio devido a uma reentrada inesperada.
- Corrigido um problema em que
Hyperlinkas cores não eram atualizadas corretamente ao alternar para um tema de alto contraste.- Corrigido um problema em que alterar a coleção de um
ListViewem uma janela de segundo plano poderia mover incorretamente essa janela para o primeiro plano e tomar o foco.- Corrigido um problema em que chamar
ItemsRepeater.StartBringIntoViewàs vezes fazia com que os itens desaparecessem.- Corrigido um problema em que tocar e arrastar em um
Buttonem umScrollViewero deixava em um estado pressionado.- Atualização do IntelliSense, que estava faltando informações para muitos tipos e membros mais recentes.
- Corrigido um problema em que clicar em uma área vazia de um
ScrollViewersempre movia o foco para o primeiro controle focalizável noScrollViewere rolava esse controle para exibição. Para obter mais informações, consulte o problema #597 do GitHub.- Corrigido um problema em que às vezes o evento
Window.Activateddisparava várias vezes. Para obter mais informações, consulte o problema #7343 do GitHub.- Corrigido um problema em que ao definir a propriedade
NavigationViewItem.IsSelectedparatrue, impedia que seus filhos fossem exibidos quando expandidos. Para obter mais informações, consulte o problema #7930 do GitHub.- Corrigido um problema em que
MediaPlayerElementnão exibia corretamente legendas comNoneouDropShadowefeitos de borda. Para obter mais informações, consulte o problema #7981 do GitHub.- Corrigido um problema em que a propriedade
Flyout.ShowModenão era usada ao mostrar o submenu. Para obter mais informações, consulte o problema #7987 do GitHub.- Corrigido um problema em que
NumberBoxàs vezes apresentava erros de arredondamento. Para obter mais informações, consulte o problema #8780 do GitHub.- Correção de um problema em que usar uma biblioteca compilada contra uma versão mais antiga do SDK do Aplicativo do Windows poderia resultar em um erro ao buscar um tipo ou propriedade. Para obter mais informações, consulte o problema #8810 do GitHub.
- Corrigido um problema em que o foco inicial do teclado não era definido ao iniciar uma janela. Para obter mais informações, consulte o problema #8816 do GitHub.
- Corrigido um problema em que
FlyoutShowMode.TransientWithDismissOnPointerMoveAwaynão funcionava após a primeira vez que era mostrado. Para obter mais informações, consulte o problema #8896 do GitHub.- Corrigido um problema em que alguns controles não associavam corretamente as propriedades de modelo
ForegroundeBackground. Para obter mais informações, consulte os problemas #7070, #9020, #9029, #9083 e #9102 do GitHub.- Corrigido um problema no qual os
ThemeResources usados nos settersVisualStateManagernão eram atualizados com a mudança de tema. Isso geralmente afetava os controles em submenus. Para obter mais informações, consulte o problema #9198 do GitHub.- Corrigido um problema em que
WebViewperdia o foco principal, resultando em eventos adicionais de desfoque/foco e outros problemas. Para obter mais informações, consulte o problema #9288 do GitHub.- Corrigido um problema em que
NavigationViewpoderia mostrar um erro de associação na saída de depuração. Para obter mais informações, consulte o problema #9384 do GitHub.- Corrigido um problema em que os arquivos SVG que definiam uma caixa de visualização negativa não eram mais renderizados. Para obter mais informações, consulte o problema #9415 do GitHub.
- Corrigido um problema em que alterar
ItemsView.Layouta orientação fazia com que um item fosse removido. Para obter mais informações, consulte o problema #9422 do GitHub.- Corrigido um problema em que rolar
ScrollViewgerava muita saída de depuração. Para obter mais informações, consulte o problema #9434 do GitHub.- Corrigido um problema em que
MapContorl.InteractiveControlsVisiblenão funcionava corretamente. Para obter mais informações, consulte o problema #9486 do GitHub.- Corrigido um problema em que o evento
MapControl.MapElementClicknão era acionado corretamente. Para obter mais informações, consulte o problema #9487 do GitHub.- Corrigido um problema em que x:Bind não verificava se havia nulo antes de usar uma referência fraca, o que poderia resultar em uma falha. Para obter mais informações, consulte o problema #9551 do GitHub.
- Corrigido um problema em que a alteração da
TeachingTip.Targetpropriedade não atualizava corretamente sua posição. Para obter mais informações, consulte o problema #9553 do GitHub.- Corrigido um problema em que as listas suspensas não funcionavam no WebView2. Para obter mais informações, consulte o problema #9566 do GitHub.
- Corrigido um vazamento de memória ao usar
GeometryGroup. Para obter mais informações, consulte o problema #9578 do GitHub.- Corrigido um problema em que rolar por um número muito grande de itens de um
ItemRepeaterem umScrollViewpoderia causar quadros de renderização vazios. Para obter mais informações, consulte o problema #9643 do GitHub.- Corrigido um problema em que
SceneVisualnão estava funcionando.
Novas APIs
A versão 1.6.0 inclui as seguintes novas APIs em comparação com a versão estável 1.5:
Microsoft.UI ColorHelper ToDisplayNameMicrosoft.UI.Input EnteredMoveSizeEventArgs EnteringMoveSizeEventArgs ExitedMoveSizeEventArgs InputNonClientPointerSource EnteredMoveSize EnteringMoveSize ExitedMoveSize WindowRectChanged WindowRectChanging MoveSizeOperation WindowRectChangedEventArgs WindowRectChangingEventArgsMicrosoft.UI.Xaml XamlRoot CoordinateConverterMicrosoft.UI.Xaml.Automation.Peers ScrollPresenterAutomationPeerMicrosoft.UI.Xaml.Controls PipsPager WrapMode WrapModeProperty PipsPagerWrapMode TabView CanTearOutTabs CanTearOutTabsProperty ExternalTornOutTabsDropped ExternalTornOutTabsDropping TabTearOutRequested TabTearOutWindowRequested TabViewExternalTornOutTabsDroppedEventArgs TabViewExternalTornOutTabsDroppingEventArgs TabViewTabTearOutRequestedEventArgs TabViewTabTearOutWindowRequestedEventArgsMicrosoft.Windows.Globalization ApplicationLanguagesMicrosoft.Windows.Management.Deployment EnsureReadyOptions RegisterNewerIfAvailable PackageDeploymentFeature PackageDeploymentManager IsPackageDeploymentFeatureSupported IsPackageProvisioned IsPackageProvisionedByUri IsPackageReadyOrNewerAvailable IsPackageReadyOrNewerAvailableByUri IsPackageSetProvisioned IsPackageSetReadyOrNewerAvailable PackageReadyOrNewerAvailableStatusMicrosoft.Windows.Storage ApplicationData ApplicationDataContainer ApplicationDataContract ApplicationDataCreateDisposition ApplicationDataLocality
Versão 1.6 Versão Prévia 2 (1.6.0-preview2)
Esta é a versão mais recente do canal de visualização para a versão 1.6.
Em um aplicativo existente do SDK do Aplicativo do Windows 1.5 (do canal estável), você pode atualizar seu pacote Nuget para 1.6.0-preview2 (consulte a seção Atualizar um pacote em Instalar e gerenciar pacotes no Visual Studio usando o Gerenciador de Pacotes NuGet).
Para visualizar o runtime atualizado e o MSIX, confira Downloads para o SDK do Aplicativo Windows.
Suporte a AOT nativo
A versão 1.6-preview2 inclui alterações significativas para atualizar para a versão 2.1.1.1 do Microsoft.Windows.CsWinRT lançada e tornar a criação mais confiável para compilação nativa do Ahead-Of-Time.
Integração atualizada do SDK do Edge WebView2
Esta versão agora referencia a versão 1.0.2651.64 do pacote, que foi lançada, e deve corrigir problemas encontrados com a versão de pré-lançamento referenciada em 1.6-preview1. Conforme observado na versão 1.6-preview1, os aplicativos agora podem escolher uma versão mais recente do
Microsoft.Web.WebView2pacote, se desejado.
Correções
1.6-preview2 contém as seguintes novas correções desde a versão 1.6-preview1:
- Corrigida uma falha ao definir
InfoBar.IsOpenem .xaml. Para obter mais informações, consulte o problema #8391 do GitHub.- Corrigido um problema em que os elementos HTML perdiam a captura do ponteiro quando o mouse se movia para fora dos
WebView2limites. Para obter mais informações, consulte o problema #8677 do GitHub.- Corrigido um problema em que arrastar e soltar em um submenu com
ShouldConstrainToRootBounds=falsenão funcionava. Para obter mais informações, consulte o problema #9276 do GitHub.- Corrigido um problema em que
ms-appx://referências não funcionavam quandoPublishSingleFileestava ativado. Para obter mais informações, consulte o problema #9468 do GitHub.- Corrigido um problema em que os símbolos do depurador não estavam funcionando corretamente para alguns binários. Para obter mais informações, consulte o problema #4633 do GitHub.
- Corrigida uma quebra de build ao usar
/permissive-. Para obter mais informações, consulte o problema do GitHub nº 4643.- Correção de algumas alterações de incompatibilidade da API na versão 1.6-preview1 causadas por parâmetros renomeados. Para obter mais informações, consulte o problema do GitHub nº 4645.
- Correção das falhas de compilação causadas por conflitos de tipo em alguns projetos na versão 1.6-preview1, especialmente com os tipos
Windows.UI.Text. Para obter mais informações, consulte o problema do GitHub nº 4646.- Correção de um problema com pesquisas de recursos por bibliotecas de controle na versão 1.6-preview1. Para obter mais informações, consulte o problema do GitHub nº 4649.
- Corrigido uma possível falha ao subclassificar
NavigationView.- Corrigido um problema em que as bordas da tabela em um
RichEditBoxnão eram apagadas corretamente ao rolar ou reduzir o tamanho da tabela.- Foi corrigido um problema em que o submenu de
MediaTransportControlstinham um fundo totalmente transparente.- Foi corrigido um problema em que o arrastar em um WebView2 falhava ou caía no local errado em fatores de escala de exibição diferentes de 100% ou quando a escala de texto do sistema estava habilitada.
- Corrigido um problema em que
TextBox/RichEditBoxnão anunciava às ferramentas de acessibilidade quando a entrada era bloqueada devido ao limiteMaxLength.
Versão 1.6 Versão Prévia 1 (1.6.0-preview1)
Observação
O novo controle TitleBar lançado na versão 1.6-experimental1 ainda não está disponível em builds não experimentais de 1.6 para permitir mais tempo para avaliar e responder aos comentários da comunidade. Recebemos muitas ótimas contribuições aqui e queremos ter certeza de que dedicaremos o tempo necessário para abordá-las.
Alterações de projeto em C# necessárias para 1.6-preview1
Na versão 1.6-preview1, os aplicativos gerenciados do Windows App SDK exigem Microsoft.Windows.SDK.NET.Ref
*.*.*.38, que pode ser especificado por meio de WindowsSdkPackageVersion em seu arquivocsproj. Por exemplo:<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>WinExe</OutputType> <TargetFramework>net8.0-windows10.0.22621.0</TargetFramework> <TargetPlatformMinVersion>10.0.17763.0</TargetPlatformMinVersion> <WindowsSdkPackageVersion>10.0.22621.38</WindowsSdkPackageVersion> <PropertyGroup> ...Além disso, os aplicativos gerenciados do SDK do Aplicativo Windows devem ser atualizados para Microsoft.Windows.CsWinRT
2.1.1(ou posterior).
Suporte a AOT nativo
A propriedade do projeto .NET
PublishAotagora tem suporte para compilação nativa antecipada. Para obter detalhes sobre o AOT nativo, consulte Implantação do AOT Nativo. Como o AOT se baseia no suporte ao Trimming, grande parte das diretrizes relacionadas ao Trimming descritas anteriormente na versão 1.6-experimental1 também se aplica. Consulte o suporte AOT nativo para obter mais informações.Conforme observado acima, os projetos em C# devem ter uma referência de pacote para Microsoft.Windows.CsWinRT 2.1.1 (ou posterior). Esta versão inclui uma implementação segura
ICustomPropertyProviderde AOT. Os tipos usados com esse suporte devem ser marcados com o atributoWinRT.GeneratedBindableCustomPropertyjunto a serempartial.
Integração do SDK do Edge WebView2 alterada
O SDK do Aplicativo Windows agora consome o SDK do Edge WebView2 como uma referência NuGet em vez de inserir uma versão codificada do SDK do Edge WebView2. O novo modelo permite que os aplicativos escolham uma versão mais recente do
Microsoft.Web.WebView2pacote em vez de se limitarem à versão com a qual o SDK do Aplicativo Windows foi criado. O novo modelo também permite que os aplicativos façam referência a pacotes NuGet que também fazem referência ao SDK do Edge WebView2. Para obter mais informações, consulte o problema #5689 do GitHub.
Novas APIs de implantação de pacote
A API de Gerenciamento de Pacotes recebeu vários aprimoramentos, incluindo Is*ReadyOrNewerAvailable*(), EnsureReadyOptions.RegisterNewerIfAvailable, Is*Provisioned*(), IsPackageRegistrationPending() e várias correções de bugs. Consulte PackageManagement.md e Pull Request #4453 para obter mais detalhes.
Tear-out da guia TabView aprimorada
TabViewsuporta um novo modoCanTearOutTabsque proporciona uma experiência aprimorada ao arrastar guias e criar uma nova janela. Quando essa nova opção está ativada, arrastar a guia é muito parecido com a experiência de arrastar a guia no Edge e no Chrome, onde uma nova janela é criada imediatamente durante o arrasto, permitindo que o usuário a arraste para a borda da tela para maximizar ou ajustar a janela em um movimento suave. Essa implementação também não usa APIs de arrastar e soltar, portanto, não é afetada por nenhuma limitação nessas APIs. Notavelmente, a remoção de guias é suportada em processos executados com privilégios elevados como Administrador.
Outras alterações notáveis
- Adicionamos uma nova
ColorHelper.ToDisplayName()API, preenchendo essa lacuna da UWP.- Adicionada uma nova
Microsoft.Windows.Globalization.ApplicationLanguagesclasse, que inclui um novoPrimaryLanguageOverriderecurso. Para obter mais informações, consulte o problema #4523 do GitHub.ItemsWrapGridnão selado. Essa deve ser uma alteração compatível com as versões anteriores.PipsPagerdá suporte a um novo modo em que ele pode encapsular entre o primeiro e os itens de lista.RatingControlagora é mais personalizável, movendo algumas propriedades de estilo codificadas para recursos de tema. Isso permite que os aplicativos substituam esses valores para personalizar melhor a aparência do RatingControl.
Problemas conhecidos
- Se o depurador estiver definido para interromper em todas as exceções C++, ele interromperá em duas exceções barulhentas durante a inicialização no código BCP47 (Windows Globalization).
Correções
- Corrigidos alguns problemas relacionados ao manuseio de cenários personalizados da barra de título. Para obter mais informações, consulte os problemas do GitHub #7629, #9670, #9709 e #8431.
- Corrigido um problema em que
InfoBadgeo ícone não estava visível. Para obter mais informações, consulte o problema #8176 do GitHub.- Corrigido um problema com ícones às vezes exibidos na posição errada em
CommandBarFlyout. Para obter mais informações, confira o issue n.º 9409 do GitHub.- Corrigido um problema com o foco do teclado nos menus ao abrir ou fechar um submenu. Para obter mais informações, consulte o problema #9519 do GitHub.
- Corrigido um problema com
TreeViewao usar o estado incorreto deIsExpandedao reciclar itens. Para obter mais informações, consulte o problema #9549 do GitHub.- Corrigido um problema ao usar uma vinculação ElementName em um
ItemsRepeater.ItemTemplate. Para obter mais informações, consulte o problema #9715 do GitHub.- Corrigido um problema em que, às vezes, o primeiro item em um
ItemsRepeatertinha uma posição incorreta. Para obter mais informações, consulte o problema #9743 do GitHub.- Corrigido um problema com
InputNonClientPointerSourceàs vezes interrompendo a entrada nos botões min/max/close. Para obter mais informações, consulte o problema #9749 do GitHub.- Corrigido um erro de compilação ao usar Microsoft.UI.Interop.h com clang-cl. Para obter mais informações, consulte o problema #9771 do GitHub.
- Corrigido um problema em que o evento
CharacterReceivednão funcionava noComboBox/TextBox. Para obter mais informações, consulte o problema #9786 do GitHub.- Corrigido o problema nos builds experimentais da versão 1.6 em que o comportamento de entrada do ponteiro
CanTearOutTabsestava incorreto em monitores com fator de escala diferente de 100%. Para obter mais informações, consulte o problema do GitHub nº 9791.- Corrigido o problema na compilação 1.6-experimental2 em que algumas traduções de idioma apresentavam problemas de codificação de caracteres no
ColorHelper.ToDisplayName().- Corrigido um problema da versão 1.6-experimental1 em que
NumberBoxnão estava usando as cores frontais e de fundo corretas. Para obter mais informações, consulte o problema do GitHub nº 9714.- Corrigido um problema em que eventos duplicados
KeyUperam gerados para teclas de seta e tab. Para obter mais informações, consulte o problema #9399 do GitHub.- Corrigido um problema em que o
PowerManager.SystemSuspendStatusChangedevento era inutilizável para obter oSystemSuspendStatus. Para obter mais informações, consulte o problema #2833 do GitHub.- Corrigido um problema em que o foco inicial do teclado não era dado corretamente a um
WebView2quando esse era o único controle na janela.- Corrigido um problema ao usar
ExtendsContentIntoTitleBar=trueem que os botões Mín/Máx/Fechar não apareciam corretamente na Automação da Interface do Usuário, o que impedia o Acesso por Voz de mostrar números para esses botões.- Foi corrigido um problema em que um aplicativo poderia travar em uma verificação de bloqueio devido a uma reentrada inesperada.
- Corrigido um problema em que
Hyperlinkas cores não eram atualizadas corretamente ao alternar para um tema de alto contraste.- Corrigido um problema em que alterar a coleção de um
ListViewem uma janela de segundo plano poderia mover incorretamente essa janela para o primeiro plano e tomar o foco.- Corrigido um problema na versão 1.6-experimental1 em que a configuração de
AcrylicBrush.TintLuminosityOpacityem .xaml em um projeto de biblioteca de classes travava com um erro de conversão de tipo.- Corrigido um problema em que chamar
ItemsRepeater.StartBringIntoViewàs vezes fazia com que os itens desaparecessem.- Corrigido um problema em que tocar e arrastar em um
Buttonem umScrollViewero deixava em um estado pressionado.- Atualização do IntelliSense, que estava faltando informações para muitos tipos e membros mais recentes.
- Corrigido um problema em que clicar em uma área vazia de um
ScrollViewersempre movia o foco para o primeiro controle focalizável noScrollViewere rolava esse controle para exibição. Para obter mais informações, consulte o problema #597 do GitHub.- Corrigido um problema em que às vezes o evento
Window.Activateddisparava várias vezes. Para obter mais informações, consulte o problema #7343 do GitHub.- Corrigido um problema em que ao definir a propriedade
NavigationViewItem.IsSelectedparatrue, impedia que seus filhos fossem exibidos quando expandidos. Para obter mais informações, consulte o problema #7930 do GitHub.- Corrigido um problema em que
MediaPlayerElementnão exibia corretamente legendas comNoneouDropShadowefeitos de borda. Para obter mais informações, consulte o problema #7981 do GitHub.- Corrigido um problema em que a propriedade
Flyout.ShowModenão era usada ao mostrar o submenu. Para obter mais informações, consulte o problema #7987 do GitHub.- Corrigido um problema em que
NumberBoxàs vezes apresentava erros de arredondamento. Para obter mais informações, consulte o problema #8780 do GitHub.- Correção de um problema em que usar uma biblioteca compilada contra uma versão mais antiga do SDK do Aplicativo do Windows poderia resultar em um erro ao buscar um tipo ou propriedade. Para obter mais informações, consulte o problema #8810 do GitHub.
- Corrigido um problema em que o foco inicial do teclado não era definido ao iniciar uma janela. Para obter mais informações, consulte o problema #8816 do GitHub.
- Corrigido um problema em que
FlyoutShowMode.TransientWithDismissOnPointerMoveAwaynão funcionava após a primeira vez que era mostrado. Para obter mais informações, consulte o problema #8896 do GitHub.- Corrigido um problema em que alguns controles não associavam corretamente as propriedades de modelo
ForegroundeBackground. Para obter mais informações, consulte os problemas #7070, #9020, #9029, #9083 e #9102 do GitHub.- Corrigido um problema no qual os
ThemeResources usados nos settersVisualStateManagernão eram atualizados com a mudança de tema. Isso geralmente afetava os controles em submenus. Para obter mais informações, consulte o problema #9198 do GitHub.- Corrigido um problema em que
WebViewperdia o foco principal, resultando em eventos adicionais de desfoque/foco e outros problemas. Para obter mais informações, consulte o problema #9288 do GitHub.- Corrigido um problema em que
NavigationViewpoderia mostrar um erro de associação na saída de depuração. Para obter mais informações, consulte o problema #9384 do GitHub.- Corrigido um problema em que os arquivos SVG que definiam uma caixa de visualização negativa não eram mais renderizados. Para obter mais informações, consulte o problema #9415 do GitHub.
- Corrigido um problema em que alterar
ItemsView.Layouta orientação fazia com que um item fosse removido. Para obter mais informações, consulte o problema #9422 do GitHub.- Corrigido um problema em que rolar
ScrollViewgerava muita saída de depuração. Para obter mais informações, consulte o problema #9434 do GitHub.- Corrigido um problema em que
MapContorl.InteractiveControlsVisiblenão funcionava corretamente. Para obter mais informações, consulte o problema #9486 do GitHub.- Corrigido um problema em que o evento
MapControl.MapElementClicknão era acionado corretamente. Para obter mais informações, consulte o problema #9487 do GitHub.- Corrigido um problema em que x:Bind não verificava se havia nulo antes de usar uma referência fraca, o que poderia resultar em uma falha. Para obter mais informações, consulte o problema #9551 do GitHub.
- Corrigido um problema em que a alteração da
TeachingTip.Targetpropriedade não atualizava corretamente sua posição. Para obter mais informações, consulte o problema #9553 do GitHub.- Corrigido um problema em que as listas suspensas não funcionavam no WebView2. Para obter mais informações, consulte o problema #9566 do GitHub.
- Corrigido um vazamento de memória ao usar
GeometryGroup. Para obter mais informações, consulte o problema #9578 do GitHub.- Corrigido um problema em que rolar por um número muito grande de itens de um
ItemRepeaterem umScrollViewpoderia causar quadros de renderização vazios. Para obter mais informações, consulte o problema #9643 do GitHub.- Corrigido um problema em que
SceneVisualnão estava funcionando.
Novas APIs na versão 1.6.0-preview1
A versão 1.6-preview1 inclui as seguintes novas APIs em comparação com a versão estável 1.5:
Microsoft.UI ColorHelper ToDisplayNameMicrosoft.UI.Input EnteredMoveSizeEventArgs EnteringMoveSizeEventArgs ExitedMoveSizeEventArgs InputNonClientPointerSource EnteredMoveSize EnteringMoveSize ExitedMoveSize WindowRectChanged WindowRectChanging MoveSizeOperation WindowRectChangedEventArgs WindowRectChangingEventArgsMicrosoft.UI.Xaml XamlRoot CoordinateConverterMicrosoft.UI.Xaml.Automation.Peers ScrollPresenterAutomationPeerMicrosoft.UI.Xaml.Controls PipsPager WrapMode WrapModeProperty PipsPagerWrapMode TabView CanTearOutTabs CanTearOutTabsProperty ExternalTornOutTabsDropped ExternalTornOutTabsDropping TabTearOutRequested TabTearOutWindowRequested TabViewExternalTornOutTabsDroppedEventArgs TabViewExternalTornOutTabsDroppingEventArgs TabViewTabTearOutRequestedEventArgs TabViewTabTearOutWindowRequestedEventArgsMicrosoft.Windows.Globalization ApplicationLanguagesMicrosoft.Windows.Management.Deployment EnsureReadyOptions RegisterNewerIfAvailable PackageDeploymentFeature PackageDeploymentManager IsPackageDeploymentFeatureSupported IsPackageProvisioned IsPackageProvisionedByUri IsPackageReadyOrNewerAvailable IsPackageReadyOrNewerAvailableByUri IsPackageSetProvisioned IsPackageSetReadyOrNewerAvailable PackageReadyOrNewerAvailableStatusMicrosoft.Windows.Storage ApplicationData ApplicationDataContainer ApplicationDataContract ApplicationDataCreateDisposition ApplicationDataLocality
Versão 1.6 Experimental (1.6.0-experimental2)
Observação
As APIs Phi Silica e OCR não estão incluídas nesta versão. Eles virão em uma versão futura 1.6.
Atualizações de suporte do AOT nativo
No 1.6-experimental1, o compilador XAML estava gerando
XamlTypeInfo.g.cscom código que não era seguro para AOT/Trimming. Isso está relacionado ao problema #9675 do GitHub, embora não corrija totalmente esse problema.
Integração do SDK do Edge WebView2 alterada
O SDK do Aplicativo Windows agora consome o SDK do Edge WebView2 como uma referência NuGet em vez de inserir uma versão codificada do SDK do Edge WebView2. O novo modelo permite que os aplicativos escolham uma versão mais recente do
Microsoft.Web.WebView2pacote em vez de se limitarem à versão com a qual o SDK do Aplicativo Windows foi criado. O novo modelo também permite que os aplicativos façam referência a pacotes NuGet que também fazem referência ao SDK do Edge WebView2. Para obter mais informações, consulte o problema #5689 do GitHub.
Novas APIs de implantação de pacote
A API de Gerenciamento de Pacotes recebeu vários aprimoramentos, incluindo Is*ReadyOrNewerAvailable*(), EnsureReadyOptions.RegisterNewerIfAvailable, Is*Provisioned*(), IsPackageRegistrationPending() e várias correções de bugs. Consulte PackageManagement.md e Pull Request #4453 para obter mais detalhes.
Outras alterações notáveis
- A partir da versão 1.6-experimental2, a fonte mais recente do WinUI 3 agora será publicada no branch principal no repositório GitHub microsoft-ui-xaml, o que permitirá a pesquisa de origem nesse repositório.
- Adicionamos uma nova
ColorHelper.ToDisplayName()API, preenchendo essa lacuna da UWP.
- Problema conhecido: algumas traduções de idiomas têm problemas de codificação de caracteres. Isso será corrigido na próxima versão 1.6.
- Adicionada uma nova
Microsoft.Windows.Globalization.ApplicationLanguagesclasse, que inclui um novoPrimaryLanguageOverriderecurso. Para obter mais informações, consulte o problema #4523 do GitHub.- Novas extensões permitem que os provedores de widgets forneçam aos widgets conteúdo da web e anúncios para widgets.
Novas APIs para 1.6-experimental2
1.6-experimental2 inclui as novas APIs a seguir. Essas APIs não são experimentais, mas ainda não estão incluídas em uma versão de versão estável do SDK do Aplicativo do Windows.
Microsoft.UI.Xaml.Controls PipsPager WrapMode WrapModeProperty PipsPagerWrapModeMicrosoft.Windows.Globalization ApplicationLanguagesMicrosoft.Windows.Management.Deployment EnsureReadyOptions RegisterNewerIfAvailable PackageDeploymentFeature PackageDeploymentManager IsPackageDeploymentFeatureSupported IsPackageProvisioned IsPackageProvisionedByUri IsPackageReadyOrNewerAvailable IsPackageReadyOrNewerAvailableByUri IsPackageSetProvisioned IsPackageSetReadyOrNewerAvailable PackageReadyOrNewerAvailableStatus
APIs adicionais 1.6-experimental2
Esta versão inclui as seguintes APIs experimentais novas e modificadas:
Microsoft.UI ColorHelper ToDisplayNameMicrosoft.UI.Composition CompositionNotificationDeferralMicrosoft.UI.Composition.Experimental ExpCompositionVisualSurface ExpExpressionNotificationProperty IExpCompositionPropertyChanged IExpCompositionPropertyChangedListener IExpCompositor IExpVisualMicrosoft.UI.Content AutomationOptions ChildContentLink ContentAppWindowBridge ContentDisplayOrientations ContentExternalBackdropLink ContentExternalOutputLink ContentIsland Children Compositor Connected ConnectionInfo ConnectRemoteEndpoint Create Disconnected FindAllForCompositor FragmentRootAutomationProvider GetByVisual IsRemoteEndpointConnected NextSiblingAutomationProvider Offset ParentAutomationProvider PreviousSiblingAutomationProvider Root RotationAngleInDegrees ContentIslandEnvironment AutomationOption CurrentOrientation DisplayScale NativeOrientation ThemeChanged ContentSite Compositor Offset RotationAngleInDegrees SetContentNodeParent SetIsInputPassThrough SiteVisual TryGetAutomationProvider ContentSiteAutomationProviderRequestedEventArgs ContentSiteEnvironment CurrentOrientation DisplayScale NativeOrientation NotifyThemeChanged ContentSiteView Offset RotationAngleInDegrees CoreWindowSiteBridge CoreWindowTopLevelWindowBridge DesktopChildSiteBridge AcceptRemoteEndpoint ConnectionInfo IsRemoteEndpointConnected RemoteEndpointConnecting RemoteEndpointDisconnected RemoteEndpointRequestedStateChanged DesktopSiteBridge TryCreatePopupSiteBridge EndpointConnectionEventArgs EndpointRequestedStateChangedEventArgs IContentIslandEndpointConnectionPrivate IContentLink IContentNodeOwner IContentSiteBridge2 IContentSiteBridgeAutomation IContentSiteBridgeEndpointConnectionPrivate PopupWindowSiteBridge ProcessStarter ReadOnlyDesktopSiteBridge SystemVisualSiteBridgeMicrosoft.UI.Input EnteredMoveSizeEventArgs EnteringMoveSizeEventArgs ExitedMoveSizeEventArgs InputKeyboardSource GetForWindowId InputLayoutPolicy InputLightDismissAction GetForIsland InputNonClientPointerSource EnteredMoveSize EnteringMoveSize ExitedMoveSize WindowRectChanged WindowRectChanging InputPointerActivationBehavior InputPointerSource ActivationBehavior DirectManipulationHitTest GetForVisual GetForWindowId RemoveForVisual TouchHitTesting TrySetDeviceKinds MoveSizeOperation ProximityEvaluation TouchHitTestingEventArgs WindowRectChangedEventArgs WindowRectChangingEventArgsMicrosoft.UI.Input.Experimental ExpInputSite ExpPointerPointMicrosoft.UI.Windowing AppWindow DefaultTitleBarShouldMatchAppModeTheme DisplayArea GetMetricsFromWindowIdMicrosoft.UI.Xaml XamlIsland XamlRoot CoordinateConverter TryGetContentIslandMicrosoft.UI.Xaml.Automation.Peers PagerControlAutomationPeer ScrollPresenterAutomationPeerMicrosoft.UI.Xaml.Controls ContentDialogPlacement UnconstrainedPopup ElementFactory FlowLayout FlowLayoutAnchorInfo FlowLayoutLineAlignment FlowLayoutState IApplicationViewSpanningRects IndexPath ISelfPlayingAnimatedVisual ItemContainer CanUserInvoke CanUserInvokeProperty CanUserSelect CanUserSelectProperty ItemInvoked MultiSelectMode MultiSelectModeProperty ItemContainerInteractionTrigger ItemContainerInvokedEventArgs ItemContainerMultiSelectMode ItemContainerUserInvokeMode ItemContainerUserSelectMode LayoutPanel NumberBox InputScope InputScopeProperty TextAlignment TextAlignmentProperty PagerControl PagerControlButtonVisibility PagerControlDisplayMode PagerControlSelectedIndexChangedEventArgs PagerControlTemplateSettings ProgressRing DeterminateSource DeterminateSourceProperty IndeterminateSource IndeterminateSourceProperty RecyclePool RecyclingElementFactory ScrollingViewChangingEventArgs ScrollView ViewChanging SelectionModel SelectionModelChildrenRequestedEventArgs SelectionModelSelectionChangedEventArgs SelectTemplateEventArgs StackLayout IsVirtualizationEnabled IsVirtualizationEnabledProperty StackLayoutState TabView CanTearOutTabs CanTearOutTabsProperty ExternalTornOutTabsDropped ExternalTornOutTabsDropping TabTearOutRequested TabTearOutWindowRequested TabViewExternalTornOutTabsDroppedEventArgs TabViewExternalTornOutTabsDroppingEventArgs TabViewTabTearOutRequestedEventArgs TabViewTabTearOutWindowRequestedEventArgs TitleBar TitleBarAutomationPeer TitleBarTemplateSettings UniformGridLayoutStateMicrosoft.UI.Xaml.Controls.Primitives ScrollPresenter ViewChangingMicrosoft.Windows.ApplicationModel.WindowsAppRuntime DeploymentManager Repair DeploymentStatus PackageRepairFailed ReleaseInfo RuntimeInfo VersionInfoContractMicrosoft.Windows.Widgets.Feeds.Providers FeedManager TryRemoveAnnouncementById IFeedManager3Microsoft.Windows.Widgets.Notifications WidgetAnnouncement WidgetAnnouncementInvokedArgsMicrosoft.Windows.Widgets.Providers IWidgetAnnouncementInvokedTarget IWidgetManager2 IWidgetManager3 IWidgetProviderMessage IWidgetResourceProvider WidgetManager SendMessageToContent TryRemoveAnnouncementById TryShowAnnouncement WidgetMessageReceivedArgs WidgetResourceRequest WidgetResourceRequestedArgs WidgetResourceResponse
Problemas conhecidos
- Para a desativação da guia TabView, o comportamento de entrada do ponteiro para CanTearOutTabs está incorreto em monitores com fator de escala diferente de 100%. Isso será corrigido na próxima versão 1.6.
Correções
- Corrigido um problema da versão 1.6-experimental1 em que
NumberBoxnão estava usando as cores frontais e de fundo corretas. Para obter mais informações, consulte o problema do GitHub nº 9714.- Corrigido um problema em que eventos duplicados
KeyUperam gerados para teclas de seta e tab. Para obter mais informações, consulte o problema #9399 do GitHub.- Corrigido um problema em que o
PowerManager.SystemSuspendStatusChangedevento era inutilizável para obter oSystemSuspendStatus. Para obter mais informações, consulte o problema #2833 do GitHub.- Corrigido um problema em que o foco inicial do teclado não era dado corretamente a um
WebView2quando esse era o único controle na janela.- Corrigido um problema ao usar
ExtendsContentIntoTitleBar=trueem que os botões Mín/Máx/Fechar não apareciam corretamente na Automação da Interface do Usuário, o que impedia o Acesso por Voz de mostrar números para esses botões.- Foi corrigido um problema em que um aplicativo poderia travar em uma verificação de bloqueio devido a uma reentrada inesperada.
- Corrigido um problema da versão 1.6-experimental1 em que
TitleBarmostrava apenas o ícone e o título porque alguns elementos não apareciam no carregamento.- Corrigido um problema em que
Hyperlinkas cores não eram atualizadas corretamente ao alternar para um tema de alto contraste.- Corrigido um problema em que alterar a coleção de um
ListViewem uma janela de segundo plano poderia mover incorretamente essa janela para o primeiro plano e tomar o foco.- Corrigido um problema na versão 1.6-experimental1 em que a configuração de
AcrylicBrush.TintLuminosityOpacityem .xaml em um projeto de biblioteca de classes travava com um erro de conversão de tipo.- Corrigido um problema em que chamar
ItemsRepeater.StartBringIntoViewàs vezes fazia com que os itens desaparecessem.- Corrigido um problema em que tocar e arrastar em um
Buttonem umScrollViewero deixava em um estado pressionado.- Atualização do IntelliSense, que estava faltando informações para muitos tipos e membros mais recentes.
Versão 1.6 Experimental (1.6.0-experimental1)
Esta é a versão mais recente do canal experimental.
Para baixar, redirecione sua versão do NuGet do SDK do Aplicativo Windows para 1.6.240531000-experimental1.
Alterações de projeto em C# necessárias para 1.6-experimental1
Na versão 1.6-experimental1, SDK do Aplicativo Windows aplicativos gerenciados exigem Microsoft.Windows.SDK.NET.Ref
*.*.*.35-preview(ou posterior), que pode ser especificado por meio de WindowsSdkPackageVersion em seucsprojarquivo. Por exemplo:<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>WinExe</OutputType> <TargetFramework>net8.0-windows10.0.22621.0</TargetFramework> <TargetPlatformMinVersion>10.0.17763.0</TargetPlatformMinVersion> <WindowsSdkPackageVersion>10.0.22621.35-preview</WindowsSdkPackageVersion> <PropertyGroup> ...Além disso, SDK do Aplicativo Windows aplicativos gerenciados usando C#/WinRT devem ser atualizados para Microsoft.Windows.CsWinRT
2.1.0-prerelease.240602.1(ou posterior).
Suporte a AOT nativo
Observação
Para SDK do Aplicativo Windows 1.6.0 estável, as diretrizes a seguir estão obsoletas. Em vez disso, os projetos devem simplesmente ser definidos PublishAot como true incondicionalmente.
A propriedade do projeto .NET PublishAot agora tem suporte para compilação nativa antecipada. Para obter detalhes, consulte Implantação AOT nativa. Como o AOT se baseia no suporte ao corte, grande parte das seguintes orientações relacionadas ao corte também se aplica ao AOT.
Para PublishAot obter suporte, além das alterações do projeto C# descritas na seção anterior, você também precisará de uma referência de pacote para Microsoft.Windows.CsWinRT2.1.0-prerelease.240602.1 (ou posterior) para habilitar o gerador de origem desse pacote.
Como o SDK do Aplicativo Windows invoca destinos de publicação durante a implantação do F5, recomendamos habilitar PublishAot no momento da restauração do NuGet adicionando isso ao arquivo csproj:
<PublishAot Condition="'$(ExcludeRestorePackageImports)'=='true'">true</PublishAot>
Além disso, recomendamos habilitar PublishAot condicionalmente ao publicar configurações de versão, seja em perfis de publicação ou no projeto:
<PublishAot Condition="'$(Configuration)'=='Release'">true</PublishAot>
Resolução de problemas de AOT
Nessa versão, o desenvolvedor é responsável por garantir que todos os tipos estejam corretamente enraizados para evitar o corte (como no caso do alvo {Binding} baseado em reflexão). Versões posteriores aprimorarão o C#/WinRT e o compilador de XAML para automatizar o enraizamento sempre que possível, alertar os desenvolvedores sobre os riscos de corte e fornecer mecanismos para solucioná-los.
Classes parciais
O C#/WinRT também inclui PublishAot suporte na versão 2.1.0-prerelease.240602.1. Para habilitar uma classe para publicação AOT com C#/WinRT, ela deve primeiro ser marcada como partial. Isso permite que o analisador de origem AOT do C#/WinRT atribua as classes para análise estática. Somente as classes (que contêm métodos, os destinos de corte) exigem esse atributo.
Técnicas sem reflexão
Para habilitar a compatibilidade AOT, as técnicas baseadas em reflexão devem ser substituídas por serialização tipada estaticamente, AppContext.BaseDirectory, typeof() etc. Para obter detalhes, consulte Introdução aos avisos de corte.
Tipos de enraizamento
Até que o suporte completo seja {Binding} implementado, os tipos podem ser preservados do corte da seguinte maneira: Dado o assembly que consome o projeto PA com o tipo T no namespaceN, que é apenas referenciado dinamicamente (normalmente cortado), T pode ser preservado por meio de:
P.csproj:
<ItemGroup>
<TrimmerRootDescriptor Include="ILLink.Descriptors.xml" />
</ItemGroup>
ILLink.Descriptors.xml:
<?xml version="1.0" encoding="utf-8"?>
<linker>
<assembly fullname="A">
<type fullname="N.T" preserve="all" />
</assembly>
</linker>
Para obter a sintaxe completa da expressão XML dos descritores raiz, consulte Descritores Raiz.
Observação
Os pacotes de dependência que ainda não adotaram o suporte AOT podem apresentar problemas de tempo de execução.
Tear-out da guia TabView aprimorada
TabViewsuporta um novo modoCanTearOutTabsque proporciona uma experiência aprimorada ao arrastar guias e criar uma nova janela. Quando essa nova opção está ativada, arrastar com a guia é muito parecido com a experiência de arrastar com a guia no Edge e no Chrome, em que uma nova janela é criada imediatamente durante o arrasto, permitindo que o usuário a arraste para a borda da tela para maximizar ou ajustar a janela em um movimento suave. Essa implementação também não usa APIs de arrastar e soltar, portanto, não é afetada por nenhuma limitação nessas APIs. Notavelmente, a remoção de guias é suportada em processos executados com privilégios elevados como Administrador.Problema conhecido: nesta versão, o comportamento de entrada do ponteiro para
CanTearOutTabsestá incorreto em monitores com fator de escala diferente de 100%. Isso será corrigido na próxima versão 1.6.
Novo controle TitleBar
Um novo
TitleBarcontrole facilita a criação de uma barra de título excelente e personalizável para seu aplicativo com os seguintes recursos:
- Propriedades configuráveis de ícone, título e legenda
- Um botão Voltar integrado
- A capacidade de adicionar um controle personalizado como uma caixa de pesquisa
- Ocultação e exibição automática de elementos com base na largura da janela
- Funcionalidades para mostrar o estado da janela ativa ou inativa
- Suporte para recursos padrão da barra de título, incluindo regiões arrastáveis em áreas vazias, capacidade de resposta do tema, botões de legenda padrão (mín/máx/fechar) e suporte de acessibilidade integrado
O
TitleBarcontrole foi projetado para dar suporte a várias combinações de barras de título, tornando-o flexível para criar a experiência desejada sem precisar escrever muito código personalizado. Recebemos feedback do protótipo da barra de título do kit de ferramentas da comunidade e esperamos feedback adicional!Problema conhecido: nesta versão, o
TitleBarmostra apenas o ícone e o título devido a um problema em que alguns elementos não aparecem no carregamento. Para contornar isso, use o seguinte código para carregar os outros elementos (Legenda, Cabeçalho, Conteúdo e Rodapé):public MainWindow() { this.InitializeComponent(); this.ExtendsContentIntoTitleBar = true; this.SetTitleBar(MyTitleBar); MyTitleBar.Loaded += MyTitleBar_Loaded; } private void MyTitleBar_Loaded(object sender, RoutedEventArgs e) { // Parts get delay loaded. If you have the parts, make them visible. VisualStateManager.GoToState(MyTitleBar, "SubtitleTextVisible", false); VisualStateManager.GoToState(MyTitleBar, "HeaderVisible", false); VisualStateManager.GoToState(MyTitleBar, "ContentVisible", false); VisualStateManager.GoToState(MyTitleBar, "FooterVisible", false); // Run layout so we re-calculate the drag regions. MyTitleBar.InvalidateMeasure(); }Esse problema será corrigido na próxima versão 1.6.
Outras alterações notáveis
ItemsWrapGridnão selado. Essa deve ser uma alteração compatível com as versões anteriores.PipsPagerdá suporte a um novo modo em que ele pode encapsular entre o primeiro e os itens de lista.RatingControlagora é mais personalizável, movendo algumas propriedades de estilo codificadas para recursos de tema. Isso permite que os aplicativos substituam esses valores para personalizar melhor a aparência do RatingControl.
Novas APIs para 1.6-experimental1
1.6-experimental1 inclui as novas APIs a seguir. Essas APIs não são experimentais, mas ainda não estão incluídas em uma versão de versão estável do SDK do Aplicativo do Windows.
Microsoft.UI.Xaml.Controls PipsPager WrapMode WrapModeProperty PipsPagerWrapMode None Wrap
APIs adicionais para 1.6-experimental1
Esta versão inclui as seguintes APIs experimentais novas e modificadas:
Microsoft.UI.Content ChildContentLink ContentExternalOutputLink IsAboveContent ContentIsland Children Create FindAllForCompositor GetByVisual Offset RotationAngleInDegrees ContentSite Offset RotationAngleInDegrees ContentSiteView Offset RotationAngleInDegrees IContentLink IContentSiteBridge2 ReadOnlyDesktopSiteBridgeMicrosoft.UI.Input EnteredMoveSizeEventArgs EnteringMoveSizeEventArgs ExitedMoveSizeEventArgs InputNonClientPointerSource EnteredMoveSize EnteringMoveSize ExitedMoveSize WindowRectChanged WindowRectChanging MoveSizeOperation WindowRectChangedEventArgs WindowRectChangingEventArgsMicrosoft.UI.Windowing AppWindow DefaultTitleBarShouldMatchAppModeThemeMicrosoft.UI.Xaml XamlRoot CoordinateConverter TryGetContentIslandMicrosoft.UI.Xaml.Controls ScrollingViewChangingEventArgs ScrollView ViewChanging StackLayout IsVirtualizationEnabled IsVirtualizationEnabledProperty TabView CanTearOutTabs CanTearOutTabsProperty ExternalTornOutTabsDropped ExternalTornOutTabsDropping TabTearOutRequested TabTearOutWindowRequested TabViewExternalTornOutTabsDroppedEventArgs TabViewExternalTornOutTabsDroppingEventArgs TabViewTabTearOutRequestedEventArgs TabViewTabTearOutWindowRequestedEventArgs TitleBar TitleBarAutomationPeer TitleBarTemplateSettingsMicrosoft.UI.Xaml.Controls.Primitives ScrollPresenter ViewChanging
Outros problemas conhecidos
- Aplicativos não XAML que usam
Microsoft.UI.Content.ContentIslandse não manipulam o evento ContentIsland.AutomationProviderRequested (ou retornam nullptr como o provedor de automação) falharão se qualquer ferramenta de acessibilidade ou automação da interface do usuário estiver habilitada, como Acesso por Voz, Narrador, Insights de Acessibilidade, Inspect.exe etc.
Correções
Esta versão inclui as seguintes correções de bug:
- Corrigido um problema em que clicar em uma área vazia de um
ScrollViewersempre movia o foco para o primeiro controle focalizável noScrollViewere rolava esse controle para exibição. Para obter mais informações, consulte o problema #597 do GitHub.- Corrigido um problema em que às vezes o evento
Window.Activateddisparava várias vezes. Para obter mais informações, consulte o problema #7343 do GitHub.- Corrigido um problema que definia a
NavigationViewItem.IsSelectedpropriedade paratrueimpedir que seus filhos fossem exibidos quando expandidos. Para obter mais informações, consulte o problema #7930 do GitHub.- Corrigido um problema em que
MediaPlayerElementnão exibia corretamente legendas comNoneouDropShadowefeitos de borda. Para obter mais informações, consulte o problema #7981 do GitHub.- Corrigido um problema em que a propriedade
Flyout.ShowModenão era usada ao mostrar o submenu. Para obter mais informações, consulte o problema #7987 do GitHub.- Corrigido um problema em que
NumberBoxàs vezes apresentava erros de arredondamento. Para obter mais informações, consulte o problema #8780 do GitHub.- Correção de um problema em que o uso de uma biblioteca compilada para uma versão mais antiga do SDK do Aplicativo do Windows poderia resultar em uma tentativa falhada de encontrar um tipo ou propriedade. Para obter mais informações, consulte o problema #8810 do GitHub.
- Corrigido um problema em que o foco inicial do teclado não era definido ao iniciar uma janela. Para obter mais informações, consulte o problema #8816 do GitHub.
- Corrigido um problema em que
FlyoutShowMode.TransientWithDismissOnPointerMoveAwaynão funcionava após a primeira vez que era mostrado. Para obter mais informações, consulte o problema #8896 do GitHub.- Corrigido um problema em que alguns controles não associavam corretamente as propriedades de modelo
ForegroundeBackground. Para obter mais informações, consulte os problemas #7070, #9020, #9029, #9083 e #9102 do GitHub.- Corrigido um problema no qual os
ThemeResources usados nos settersVisualStateManagernão eram atualizados com a mudança de tema. Isso geralmente afetava os controles em submenus. Para obter mais informações, consulte o problema #9198 do GitHub.- Corrigido um problema em que
WebViewperdia o foco principal, resultando em eventos adicionais de desfoque/foco e outros problemas. Para obter mais informações, consulte o problema #9288 do GitHub.- Corrigido um problema em que
NavigationViewpode mostrar um erro de associação na saída de depuração. Para obter mais informações, consulte o problema #9384 do GitHub.- Corrigido um problema em que os arquivos SVG que definiam uma caixa de visualização negativa não eram mais renderizados. Para obter mais informações, consulte o problema #9415 do GitHub.
- Corrigido um problema em que alterar
ItemsView.Layouta orientação fazia com que um item fosse removido. Para obter mais informações, consulte o problema #9422 do GitHub.- Corrigido um problema em que rolar
ScrollViewgerava muita saída de depuração. Para obter mais informações, consulte o problema #9434 do GitHub.- Corrigido um problema em que
MapContorl.InteractiveControlsVisiblenão funciona corretamente. Para obter mais informações, consulte o problema #9486 do GitHub.- Corrigido um problema em que
MapControl.MapElementClicko evento não era disparado corretamente. Para obter mais informações, consulte o problema #9487 do GitHub.- Corrigido um problema em que x:Bind não verifica se há nulo antes de usar uma referência fraca, o que pode resultar em uma falha. Para obter mais informações, consulte o problema #9551 do GitHub.
- Corrigido um problema em que a alteração da
TeachingTip.Targetpropriedade não atualiza corretamente sua posição. Para obter mais informações, consulte o problema #9553 do GitHub.- Corrigido um problema em que as listas suspensas não funcionavam no WebView2. Para obter mais informações, consulte o problema #9566 do GitHub.
- Corrigido um vazamento de memória ao usar
GeometryGroup. Para obter mais informações, consulte o problema #9578 do GitHub.- Corrigido um problema em que rolar por um número muito grande de itens de um
ItemRepeaterem umScrollViewpode causar quadros de renderização em branco. Para obter mais informações, consulte o problema #9643 do GitHub.- Corrigido um problema em que
SceneVisualnão estava funcionando.
Windows developer