Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Pode escolher entre os canais Estável, Pré-visualização e Experimental , dependendo das suas necessidades de desenvolvimento — desde versões de produção fiáveis até acesso antecipado a novas funcionalidades. Saiba mais sobre os canais de lançamento.
Para obter o tempo de execução atualizado e o MSIX, consulte Downloads para o Windows App SDK.
Versão 1.6.9 (1.6.250602001)
Correções de bugs
- Corrigido um possível erro fatal em WindowChrome::SetTitleBar ao fechar uma janela. Para obter mais informações, consulte a edição #9203 do GitHub.
Versão 1.6.8 (1.6.250430001)
Suporte para criação de pastas ApplicationData.MachinePath
ApplicationData.MachineFolder agora é mais fácil de usar no Windows >=10.0.26100.0 (Ge). O Windows criará a pasta Máquina quando um pacote que manifesta o suporte de aceitação for adicionado a um sistema se o Windows App SDK 1.6.8 estiver presente no sistema. Para obter mais detalhes, consulte a especificação ApplicationData.
Correções de Bugs
- Foi corrigida a telemetria do PackageDeploymentManager para capturar corretamente o estado de conclusão. Para obter mais informações, consulte a edição #5297 do GitHub.
- Corrigida uma falha ao usar a entrada por caneta em um aplicativo x86.
- Corrigida uma possível falha se a janela já estiver destruída quando a WinUI estiver tentando inicializar para rolagem.
- Corrigiu a definição WINDOWSAPPSDK_RELEASE_PATCH e os valores Microsoft::WindowsAppSDK::Release::Patch em WindowsAppSDK-VersionInfo.h para que não sejam sempre 0. Agora, a definição é a data yymmdd da compilação e o valor para o Patch é a data mmdd. Essa alteração fornece melhores informações de tempo de execução sobre a versão que está sendo usada sem alterar nenhum tamanho variável ou o esquema de versão.
Versão 1.6.7 (1.6.250402001)
Correções de bugs
- A telemetria para cenários de falha foi melhorada no
WindowsAppRuntimeInstall-<arch>.exe. Para obter mais informações, consulte a edição #5291 do GitHub. - Corrigido um problema em que a entrada do ponteiro parava de funcionar ao usar as teclas de seta ao mesmo tempo. Para obter mais informações, consulte a edição #10126 do GitHub.
- Foi corrigido um problema em que as aplicações no ambiente de trabalho remoto deixavam de responder à introdução do ponteiro. Para obter mais informações, consulte a edição #10009 do GitHub. (Esta é a mesma correção que a entrada de ponteiro mais a correção de teclas de seta, devido à área de trabalho remota enviar automaticamente alguma entrada de tecla durante a mudança para longe e para trás.)
- Corrigida uma possível falha tentando restaurar o foco se um evento de ativação de janela for entregue para uma janela que está fechando.
- Corrigida uma regressão de desempenho introduzida no Windows App SDK 1.6 devido a binários WinUI faltando algumas otimizações de vinculador.
- Corrigido um pequeno problema de desempenho ao criar várias janelas/ilhas WinUI.
- Corrigido um possível bloqueio se
ProgressBar::SetProgressBarIndicatorWidthfor invocado numa ProgressBar que não esteja na árvore. - Corrigida uma possível falha causada por
CPopup::EnsureBridgeClosedao desencadear reentrância em certas ocasiões. - Corrigido um possível erro ao fechar um pop-up devido a uma coleção de filhos nula usada por
CUIElement::FlushPendingKeepVisibleOperations. - Corrigido
PackageDeploymentManager.EnsurePackage*Readypara garantir a substituição da versão. Para obter mais informações, consulte a edição #5225 do GitHub.
Versão 1.6.6 (1.6.250228001)
Correções de Bugs
Esta é uma versão de manutenção do Windows App SDK que inclui correções críticas de bugs para a versão 1.6.- Corrigido um problema em que uma janela secundária postando WM_NCMOUSELEAVE para a janela principal resultava em um loop que bloqueava novos eventos de entrada do rato.
- Corrigido um erro que ocorria no próximo evento AppWindow.Changed após uma falha no processo WebView2.
- Corrigido um possível erro fatal ao usar uma ferramenta de Acessibilidade e fechar uma janela.
- Corrigido um problema em que uma caixa de texto não aceitava a entrada de chave se fosse dado foco clicando na área do botão limpar da caixa de texto. Para obter mais informações, consulte Problema do GitHub #7703.
- Corrigido um problema em que não era mostrada uma dica de ferramenta para o botão Minimizar na barra de título ao usar
ExtendsContentIntoTitleBar=true. Para obter mais informações, consulte Problema do GitHub #9149.
Esta versão inclui as seguintes novas APIs:
Uma nova propriedade IsPlaceholderContent em WidgetInfo e WidgetUpdateRequestOptions permite que um fornecedor de Widget indique que irá mostrar conteúdo de espaço reservado, caso seja 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, alguns 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 Bugs
- Corrigido vários problemas de fuga de memória.Versão 1.6.4 (1.6.250108002)
Correções de Bugs
- Corrigido um problema de seleção de texto destacado numa TextBox de várias linhas. Para mais informações, veja a edição do GitHub [#9965](https://github.com/microsoft/microsoft-ui-xaml/issues/9965). - Corrigido um problema em que o pacote DDLM por vezes não se instalava, impedindo o lançamento de aplicações não embaladas. Para mais informações, consulte a edição do GitHub [#3855](https://github.com/microsoft/WindowsAppSDK/issues/3855). - Corrigida uma possível falha em Detours em alguns cenários. Para mais informações, consulte a edição do GitHub [#4937](https://github.com/microsoft/WindowsAppSDK/pull/4937). - Corrigido outro problema potencial em que um menu de uma Barra de Comandos pode abrir incorretamente para cima em vez de para baixo quando a Barra de Comandos está no fundo da janela. - Corrigido um potencial crash ao correr em hardware gráfico mais antigo. - Corrigida uma potencial falha no tratamento de eventos de ponteiro ao fechar uma janela. - Corrigida uma potencial falha causada pela função `CUIAWindow::InitIds`, que por vezes desencadeava reentrância. - Corrigido um possível crash ao usar o evento 'CompositionCapabilities.Changed'. - Corrigido um problema com alguns caracteres Unicode que apareciam como quadrados no TextBox/RichEditBox. - Corrigido o tratamento `PackageDeploymentManager.EnsurePackage*Async()` das opções `RegisterNewerIfAvailable`. Para mais informações, veja a edição do GitHub [#4864](https://github.com/microsoft/WindowsAppSDK/issues/4864).Versão 1.6.3 (1.6.241114003)
Correções de Bugs
Esta é uma versão de manutenção do Windows App SDK que inclui correções críticas de bugs para a versão 1.6. - Corrigido um problema em que ler a propriedade 'AppWindow.ExtendsContentIntoTitleBar' ativa a renderização personalizada na barra de título. Para mais informações, veja a edição do GitHub [#9988](https://github.com/microsoft/microsoft-ui-xaml/issues/9988). - Corrigido um possível crash durante a destruição de uma 'TextBox'/'RichEditBox'. Para mais informações, consulte a edição do GitHub [#9070](https://github.com/microsoft/microsoft-ui-xaml/issues/9070). - Corrigido um problema em que 'PackageDeploymentManager.IsPackageReadyOrNewerAvailable()' falhou. Para mais informações, consulte a edição do GitHub [#4817](https://github.com/microsoft/WindowsAppSDK/issues/4817). - Corrigido um problema em que o 'ScrollViewer' vazava. - Adicionada deteção para um cenário raro em que a aplicação deixa de ser renderizada e nunca recupera. - Corrigido um problema em que 'PackageDeploymentManager.RegisterPackageSetAsync()' requer URI quando deveria ser opcional registar-se por PackageFamilyName. - Corrigido um problema que impedia a instalação ou desinstalação de aplicações. Para mais informações, consulte a edição do GitHub [#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)
Correções de bugs
- Corrigida uma falha ao usar FocusVisualKind.Reveal(). Para obter mais informações, consulte Problema do GitHub #9966.
- Corrigidas exceções C++ inoportunas do Bcp47Langs.dll. Para obter mais informações, consulte Problema do GitHub #4691. Observe que essa correção remove a sincronização com
Windows.Globalization.ApplicationLanguages.PrimaryLanguageOverride.- Corrigido um problema em que um evento extra de
Unloadedera gerado imediatamente após a exibição de umContentDialog. Para obter mais informações, consulte Problema do GitHub #8402.- Corrigido um problema em que um menu CommandBar podia abrir incorretamente para cima, mesmo quando havia espaço para abrir para baixo.
- Foram corrigidos alguns problemas em que a entrada nas regiões
InputNonClientPointerSourcenão era tratada corretamente quando a janela de nível superior estava a ser executada no modo da direita-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 no projeto C++
Ao atualizar um projeto C++ para 1.6, você precisará adicionar uma referência de projeto ao pacote
Microsoft.Web.WebView2. Se você atualizar por meio do Gerenciador de Pacotes NuGet no Visual Studio, essa dependência será adicionada para você.
Mudanças no projeto C#
Na versão 1.6, as aplicações geridas do Windows App SDK exigem Microsoft.Windows.SDK.NET.Ref
*.*.*.38ou posterior, que pode ser especificado através de WindowsSdkPackageVersion no seu ficheirocsproj. 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 de Aplicativo Windows devem ser atualizados para
2.1.1Microsoft.Windows.CsWinRT (ou posterior).
Observação
Essas referências manuais não serão mais necessárias quando a próxima atualização de serviço do SDK do .NET for lançada.
Suporte nativo a AOT
![]()
A propriedade do projeto .NET
PublishAotagora é suportada para a compilação nativa Ahead-Of-Time. Para obter detalhes sobre a AOT nativa, consulte Native AOT Deployment. Como a AOT se baseia no suporte a redução, muitas das orientações relacionadas a redução também se aplicam à AOT.Para suporte a
PublishAote recorte, além das alterações de projeto em C# descritas na seção anterior, necessitará também de uma referência de pacote para Microsoft.Windows.CsWinRT2.1.1(ou mais recente) para ativar o gerador de código-fonte desse pacote, até que a próxima atualização de serviço do SDK do .NET seja lançada, altura em que deixará de ser necessária.Para mais informações, veja o documento de suporte do CsWinRT Trimming / AOT e as Notas de Lançamento 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 seu arquivocsproj:<PublishAot>true</PublishAot>
Resolução de Questões do AOT
Nesta versão, o desenvolvedor é responsável por garantir que todos os tipos estejam devidamente enraizados para evitar cortes (como com alvos de
{Binding}baseados em reflexão). Versões posteriores aprimorarão o C#/WinRT e o compilador XAML para automatizar o enraizamento sempre que possível, alertar os desenvolvedores sobre a redução de riscos e fornecer mecanismos para resolver.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 marcadapartial. Isso permite que o analisador de origem AOT C#/WinRT atribua as classes para análise estática. Somente as classes (que contêm métodos, os alvos de corte) exigem esse atributo.Erro de Código Inseguro
O gerador de código-fonte CsWinRT pode gerar código que faz uso de
unsafe. Se surgir este erro durante a compilação ou um aviso de diagnóstico relativamente a ele (CS0227 para "Código não seguro só pode aparecer se for compilado com /unsafe"), deve definir EnableUnsafeBlocks como true. Para obter mais informações, consulte a questão do GitHub CsWinRT #1721.WebView2 ainda não é compatível com AOT
As projeções WebView2 no pacote
Microsoft.Web.WebView2versão 1.0.2651.64 ainda não são compatíveis com AOT. Isso será corrigido em uma próxima versão do pacoteMicrosoft.Web.WebView2, que você poderá fazer referência 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 Enraizamento
Até que o suporte total para
{Binding}seja implementado, os tipos podem ser preservados da remoção da seguinte forma:Dado o projeto
Pque consome a assemblagemAdo tipoTno namespaceN, que é apenas referenciada dinamicamente (e, portanto, normalmente cortada),Tpode ser preservada da seguinte forma:
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 do descritor raiz, consulte Descritores de raiz.
Observação
Os pacotes de dependência que ainda não adotaram o suporte a AOT podem apresentar problemas de tempo de execução.
Versionamento desacoplado do WebView2
O SDK do Aplicativo Windows agora consome o SDK do Edge WebView2 como uma referência do NuGet em vez de incorporar uma versão codificada do SDK do Edge WebView2. O novo modelo permite que os aplicativos escolham uma versão mais recente do pacote
Microsoft.Web.WebView2em vez de serem limitados à versão com a qual o SDK de aplicativos do 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 Problema do GitHub #5689.
Novas APIs de Implementação de Pacotes
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.
Melhoria do separador de separação do TabView
![]()
TabViewsuporta um novo modoCanTearOutTabsque fornece uma experiência aperfeiçoada ao arrastar separadores e deslocar para uma nova janela. Quando essa nova opção está ativada, o arrastar de guias é muito parecido com a experiência de arrastar guias no Edge e no Chrome, onde uma nova janela é criada imediatamente durante o arrasto, permitindo que o usuário a arraste até a borda da tela para maximizar ou encaixar 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 de Administrador.
Outras alterações notáveis
- Adicionada uma nova API de
ColorHelper.ToDisplayName(), preenchendo essa lacuna da UWP.- Adicionada uma nova classe
Microsoft.Windows.Globalization.ApplicationLanguages, que inclui notavelmente um novo recurso dePrimaryLanguageOverride. Para obter mais informações, consulte Problema do GitHub #4523.- Não selado
ItemsWrapGrid. Esta deve ser uma alteração retrocompatível.PipsPagersuporta um novo modo de rotação onde pode navegar entre o primeiro e o ú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 de RatingControl.![]()
- WinUI 3 adotou o modelo tipográfico para a seleção de fonte em vez do modelo de peso/alongamento/estilo herdado. 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/estiramento/estilo para seleção podem não ser encontradas com o modelo tipográfico.
Questões conhecidas
- Se o depurador estiver definido para quebrar em todas as exceções C++, ele quebrará em algumas exceções barulhentas na inicialização no código BCP47 (Globalização do Windows). Para obter mais informações, consulte Problema do GitHub #4691.
- Os pacotes de biblioteca de componentes que fazem referência ao pacote do Windows App SDK 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 pacote
Microsoft.Web.WebView2quando necessário.- Os aplicativos compilados com AOT nativo às vezes podem enfrentar 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 1.6.0 introduziu um problema com uma de nossas dependências que esperamos que seja resolvido em uma próxima versão do SDK do .NET. Se ocorrer um erro com a versão da referência do Microsoft.Windows.SDK.NET, você precisará fazer referência explícita à versão do SDK do .NET especificada pela mensagem de erro. Por exemplo, se o erro disser que você precisa da versão 10.0.19041.38, adicione o seguinte ao seu arquivo
.csproj:
<WindowsSdkPackageVersion>10.0.19041.38</WindowsSdkPackageVersion>.
Correções de bugs
- Corrigida uma falha ao definir
InfoBar.IsOpenem .xaml. Para obter mais informações, consulte Problema do GitHub #8391.- Corrigido um problema em que elementos HTML perdiam a captura de ponteiro quando o mouse se movia para fora dos limites do
WebView2. Para obter mais informações, consulte Problema do GitHub #8677.- Corrigido um problema em que arrastar e soltar em um submenu com
ShouldConstrainToRootBounds=falsenão funcionava. Para obter mais informações, consulte Problema do GitHub #9276.- Corrigido um problema em que referências
ms-appx://não funcionavam quandoPublishSingleFileestava habilitado. Para obter mais informações, consulte Problema do GitHub #9468.- Corrigido um problema em que os símbolos do depurador não funcionavam corretamente para alguns binários. Para obter mais informações, consulte Problema do GitHub #4633.
- Corrigido um possível crash ao subclassificar
NavigationView.- Corrigido um problema em que as bordas da tabela num
RichEditBoxnão eram corretamente apagadas ao fazer scroll ou diminuir o tamanho da tabela.- Corrigido um problema em que os submenus do
MediaTransportControlstinham um plano de fundo totalmente transparente.- Corrigido um problema em que arrastar conteúdo para um WebView2 falhava ou era largado no local errado em fatores de escala de exibição diferentes de 100% ou quando o dimensionamento de texto do sistema estava ativado.
- Corrigido um problema em que
TextBox/RichEditBoxnão informava as ferramentas de Acessibilidade quando a entrada estava bloqueada por estar no limite deMaxLength.- Corrigidos alguns problemas relacionados à manipulação de cenários de barra de título personalizados. Para obter mais informações, consulte Problemas do GitHub #7629, #9670, #9709 e #8431.
- Corrigido um problema em que
InfoBadgeícone não estava visível. Para obter mais informações, consulte Problema do GitHub #8176.- Corrigido um problema com ícones que às vezes mostravam na posição errada no
CommandBarFlyout. Para obter mais informações, consulte Problema do GitHub #9409.- Corrigido um problema com o foco do teclado nos menus ao abrir ou fechar um submenu. Para obter mais informações, consulte Problema do GitHub #9519.
- Corrigido um problema com
TreeViewque usava o estadoIsExpandedincorreto durante a reciclagem de itens. Para obter mais informações, consulte Problema do GitHub #9549.- Corrigido um problema ao usar uma associação ElementName em um
ItemsRepeater.ItemTemplate. Para obter mais informações, consulte Problema do GitHub #9715.- Corrigido um problema com o primeiro item de um
ItemsRepeater, que por vezes tinha uma posição incorreta. Para obter mais informações, consulte Problema do GitHub #9743.- Corrigido um problema em que
InputNonClientPointerSourceàs vezes interrompe a funcionalidade dos botões de minimizar/maximizar/fechar. Para obter mais informações, consulte Problema do GitHub #9749.- Corrigido um erro de compilação ao usar Microsoft.UI.Interop.h com clang-cl. Para obter mais informações, consulte Problema do GitHub #9771.
- Corrigido um problema em que o evento
CharacterReceivednão funcionava noComboBox/TextBox. Para obter mais informações, consulte Problema do GitHub #9786.- Corrigido um problema em que eventos duplicados de
KeyUperam levantados para as teclas de seta e tab. Para obter mais informações, consulte Problema do GitHub #9399.- Corrigido um problema em que o evento
PowerManager.SystemSuspendStatusChangednão podia ser utilizado para obter oSystemSuspendStatus. Para obter mais informações, consulte Problema do GitHub #2833.- 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.- Corrigido um problema em que um aplicativo podia falhar em uma verificação de bloqueio devido a reentrância inesperada.
- Corrigido um problema em que as cores
Hyperlinknão eram atualizadas corretamente ao alternar para um tema de elevado contraste.- Corrigido um problema em que alterar a coleção de um
ListViewem uma janela de plano de fundo pode mover incorretamente essa janela para o primeiro plano e tirar 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 um
Buttonem umScrollViewero deixava pressionado.- Atualização do IntelliSense, que não incluía informações para muitos tipos e membros mais novos.
- Corrigido um problema em que clicar em uma área vazia de um
ScrollViewersempre movia o foco para o primeiro controle focalizável naScrollViewere rolava esse controle para a exibição. Para obter mais informações, consulte Problema do GitHub #597.- Corrigimos um problema em que o evento
Window.Activatedpor vezes era acionado várias vezes. Para obter mais informações, consulte Problema do GitHub #7343.- Corrigido um problema em que definir a propriedade
NavigationViewItem.IsSelectedcomotrueimpedia que seus sub-elementos fossem exibidos quando expandidos. Para obter mais informações, consulte Problema do GitHub #7930.- Corrigido um problema em que
MediaPlayerElementnão exibia corretamente legendas com efeitos de bordaNoneouDropShadow. Para obter mais informações, consulte Problema do GitHub #7981.- Corrigido um problema em que a propriedade
Flyout.ShowModenão era usada ao mostrar o submenu. Para obter mais informações, consulte Problema do GitHub #7987.- Corrigido um problema em que o marcador
NumberBox, por vezes, apresentava erros de arredondamento. Para obter mais informações, consulte Problema do GitHub #8780.- Corrigido um problema em que o uso de uma biblioteca compilada em relação a uma versão mais antiga do SDK de aplicativos do Windows podia causar um erro ao tentar localizar um tipo ou propriedade. Para obter mais informações, consulte Problema do GitHub #8810.
- Corrigido um problema em que o foco inicial do teclado não era definido ao iniciar uma janela. Para obter mais informações, consulte Problema do GitHub #8816.
- Corrigido um problema em que
FlyoutShowMode.TransientWithDismissOnPointerMoveAwaynão funcionava após a primeira vez que era mostrado. Para obter mais informações, consulte Problema do GitHub #8896.- Corrigido um problema em que alguns controlos não associavam corretamente as propriedades
ForegroundeBackgroundao modelo. Para obter mais informações, consulte Problema do GitHub #7070, #9020, #9029, #9083 e #9102.- Corrigido um problema em que
ThemeResources usados emVisualStateManagersetters não eram atualizados na mudança de tema. Isso geralmente afetava os controles em submenus. Para obter mais informações, consulte Problema do GitHub #9198.- Corrigido um problema em que
WebViewperdia o foco principal, causando eventos adicionais de desfoque/foco e outros problemas. Para obter mais informações, consulte Problema do GitHub #9288.- Corrigido um problema em que
NavigationViewpoderia apresentar um erro de ligação na saída de depuração. Para obter mais informações, consulte Problema do GitHub #9384.- Corrigido um problema em que os arquivos SVG que definiam uma caixa de exibição negativa não eram mais renderizados. Para obter mais informações, consulte Problema do GitHub #9415.
- Corrigido um problema em que a alteração da orientação
ItemsView.Layoutfazia com que um item fosse removido. Para obter mais informações, consulte Problema do GitHub #9422.- Corrigido um problema em que deslocar um
ScrollViewgerava muita saída de depuração. Para obter mais informações, consulte Problema do GitHub #9434.- Corrigido um problema em que
MapContorl.InteractiveControlsVisiblenão funcionava corretamente. Para obter mais informações, consulte Problema do GitHub #9486.- Corrigido um problema em que o evento
MapControl.MapElementClicknão era acionado corretamente. Para obter mais informações, consulte Problema do GitHub #9487.- 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 Problema do GitHub #9551.
- Corrigido um problema em que a alteração da propriedade
TeachingTip.Targetnão atualizava corretamente a sua posição. Para obter mais informações, consulte Problema do GitHub #9553.- Foi corrigido um problema em que os menus suspensos não respondiam no WebView2. Para obter mais informações, consulte Problema do GitHub #9566.
- Corrigido um vazamento de memória ao usar o
GeometryGroup. Para obter mais informações, consulte Problema do GitHub #9578.- Corrigido um problema em que o deslocamento por um número muito grande de itens de um
ItemRepeaterem umScrollViewpodia causar quadros de renderização vazios. Para obter mais informações, consulte Problema do GitHub #9643.- Corrigido um problema em que
SceneVisualnão funcionava.
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 Preview 2 (1.6.0-preview2)
Esta é a última atualização do canal de pré-visualização para a versão 1.6.
Em um aplicativo existente do Windows App SDK 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 obter o tempo de execução atualizado e o MSIX, consulte Downloads para o Windows App SDK.
Suporte nativo a AOT
1.6-preview2 inclui alterações significativas para atualizar para a versão 2.1.1 do Microsoft.Windows.CsWinRT e tornar a criação mais confiável para a compilação nativa do Ahead-Of-Time.
Integração atualizada do SDK Edge WebView2
Esta versão agora faz referência à versão 1.0.2651.64 do pacote, que
Microsoft.Web.WebView2deve corrigir problemas com a versão de pré-lançamento mencionada na 1.6-preview1. Como observado em 1.6-preview1, os aplicativos agora podem escolher uma versão mais recente doMicrosoft.Web.WebView2pacote, se desejado.
Correções de bugs
1.6-preview2 contém as seguintes novas correções desde o lançamento do 1.6-preview1:
- Corrigida uma falha ao definir
InfoBar.IsOpenem .xaml. Para obter mais informações, consulte Problema do GitHub #8391.- Corrigido um problema em que elementos HTML perdiam a captura de ponteiro quando o mouse se movia para fora dos limites do
WebView2. Para obter mais informações, consulte Problema do GitHub #8677.- Corrigido um problema em que arrastar e soltar em um submenu com
ShouldConstrainToRootBounds=falsenão funcionava. Para obter mais informações, consulte Problema do GitHub #9276.- Corrigido um problema em que referências
ms-appx://não funcionavam quandoPublishSingleFileestava habilitado. Para obter mais informações, consulte Problema do GitHub #9468.- Corrigido um problema em que os símbolos do depurador não funcionavam corretamente para alguns binários. Para obter mais informações, consulte Problema do GitHub #4633.
- Corrigida uma quebra de compilação ao usar
/permissive-. Para obter mais informações, consulte a edição #4643 do GitHub.- Corrigidas algumas alterações de quebra de API no 1.6-preview1 causadas por parâmetros renomeados. Para obter mais informações, consulte a edição #4645 do GitHub.
- Quebras de construção devido a conflitos de tipo fixo em 1.6-preview1 afetaram alguns projetos, particularmente com tipos
Windows.UI.Text. Para obter mais informações, consulte a edição #4646 do GitHub.- Corrigido um problema com pesquisas de recursos por bibliotecas de controle no 1.6-preview1. Para obter mais informações, consulte a edição #4649 do GitHub.
- Corrigido um possível crash ao subclassificar
NavigationView.- Corrigido um problema em que as bordas da tabela num
RichEditBoxnão eram corretamente apagadas ao fazer scroll ou diminuir o tamanho da tabela.- Corrigido um problema em que os submenus do
MediaTransportControlstinham um plano de fundo totalmente transparente.- Corrigido um problema em que arrastar conteúdo para um WebView2 falhava ou era largado no local errado em fatores de escala de exibição diferentes de 100% ou quando o dimensionamento de texto do sistema estava ativado.
- Corrigido um problema em que
TextBox/RichEditBoxnão informava as ferramentas de Acessibilidade quando a entrada estava bloqueada por estar no limite deMaxLength.
Versão 1.6 Preview 1 (1.6.0-preview1)
Observação
O novo controle TitleBar que lançamos no 1.6-experimental1 ainda não está disponível em compilações não experimentais do 1.6 para permitir mais tempo para avaliar e responder ao feedback da comunidade. Recebemos aqui muitos contributos fantásticos e queremos ter a certeza de que dedicamos o tempo necessário para resolver o problema.
Alterações obrigatórias ao projeto C# para a versão 1.6-preview1
Na 1.6-preview1, os aplicativos gerenciados do Windows App SDK exigem Microsoft.Windows.SDK.NET.Ref
*.*.*.38, que pode ser especificado via 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.38</WindowsSdkPackageVersion> <PropertyGroup> ...Além disso, os aplicativos gerenciados do SDK de Aplicativo Windows devem ser atualizados para
2.1.1Microsoft.Windows.CsWinRT (ou posterior).
Suporte nativo a AOT
A propriedade do projeto .NET
PublishAotagora é suportada para a compilação nativa Ahead-Of-Time. Para obter detalhes sobre a AOT nativa, consulte Native AOT Deployment. Dado que a 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 aplicam. Consulte Suporte nativo de AOT para obter mais informações.Como observado acima, os projetos 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
ICustomPropertyProviderpara AOT. Os tipos usados com este suporte devem ser marcados com o atributoWinRT.GeneratedBindableCustomPropertye também devem ser convertidos parapartial.
Alterada Integração do SDK WebView2 do Edge
O SDK do Aplicativo Windows agora consome o SDK do Edge WebView2 como uma referência do NuGet em vez de incorporar uma versão codificada do SDK do Edge WebView2. O novo modelo permite que os aplicativos escolham uma versão mais recente do pacote
Microsoft.Web.WebView2em vez de serem limitados à versão com a qual o SDK de aplicativos do 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 Problema do GitHub #5689.
Novas APIs de Implementação de Pacotes
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.
Melhoria do separador de separação do TabView
TabViewsuporta um novo modoCanTearOutTabsque fornece uma experiência aperfeiçoada ao arrastar separadores e deslocar para uma nova janela. Quando essa nova opção está ativada, o arrastar de guias é muito parecido com a experiência de arrastar guias no Edge e no Chrome, onde uma nova janela é criada imediatamente durante o arrasto, permitindo que o usuário a arraste até a borda da tela para maximizar ou encaixar 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 de Administrador.
Outras alterações notáveis
- Adicionamos uma nova
ColorHelper.ToDisplayName()API, preenchendo essa lacuna da UWP.- Adicionada uma nova classe
Microsoft.Windows.Globalization.ApplicationLanguages, que inclui notavelmente um novo recurso dePrimaryLanguageOverride. Para obter mais informações, consulte Problema do GitHub #4523.- Não selado
ItemsWrapGrid. Esta deve ser uma alteração retrocompatível.PipsPagersuporta um novo modo onde pode abranger entre o primeiro e os últimos itens.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 de RatingControl.
Questões conhecidas
- Se o depurador estiver definido para quebrar em todas as exceções C++, ele quebrará em um par de exceções barulhentas na inicialização no código BCP47 (Globalização do Windows).
Correções de bugs
- Corrigidos alguns problemas relacionados à manipulação de cenários de barra de título personalizados. Para obter mais informações, consulte Problemas do GitHub #7629, #9670, #9709 e #8431.
- Corrigido um problema em que
InfoBadgeícone não estava visível. Para obter mais informações, consulte Problema do GitHub #8176.- Corrigido um problema com ícones que às vezes mostravam na posição errada no
CommandBarFlyout. Para obter mais informações, consulte Problema do GitHub #9409.- Corrigido um problema com o foco do teclado nos menus ao abrir ou fechar um submenu. Para obter mais informações, consulte Problema do GitHub #9519.
- Corrigido um problema com
TreeViewque usava o estadoIsExpandedincorreto durante a reciclagem de itens. Para obter mais informações, consulte Problema do GitHub #9549.- Corrigido um problema ao usar uma associação ElementName em um
ItemsRepeater.ItemTemplate. Para obter mais informações, consulte Problema do GitHub #9715.- Corrigido um problema com o primeiro item de um
ItemsRepeater, que por vezes tinha uma posição incorreta. Para obter mais informações, consulte Problema do GitHub #9743.- Corrigido um problema em que
InputNonClientPointerSourceàs vezes interrompe a funcionalidade dos botões de minimizar/maximizar/fechar. Para obter mais informações, consulte Problema do GitHub #9749.- Corrigido um erro de compilação ao usar Microsoft.UI.Interop.h com clang-cl. Para obter mais informações, consulte Problema do GitHub #9771.
- Corrigido um problema em que o evento
CharacterReceivednão funcionava noComboBox/TextBox. Para obter mais informações, consulte Problema do GitHub #9786.- Corrigido o problema nas versões experimentais 1.6 em que o comportamento de entrada do ponteiro para
CanTearOutTabsestava incorreto em monitores com um fator de escala diferente de 100%. Para obter mais informações, consulte a edição #9791 do GitHub.- Corrigido o problema na compilação 1.6-experimental2 em que algumas traduções de idiomas tinham problemas de codificação de caracteres para
ColorHelper.ToDisplayName().- Corrigido um problema da versão 1.6-experimental1 em que
NumberBoxnão estava usando as cores corretas de primeiro plano e plano de fundo. Para obter mais informações, consulte a edição #9714 do GitHub.- Corrigido um problema em que eventos duplicados de
KeyUperam levantados para as teclas de seta e tab. Para obter mais informações, consulte Problema do GitHub #9399.- Corrigido um problema em que o evento
PowerManager.SystemSuspendStatusChangednão podia ser utilizado para obter oSystemSuspendStatus. Para obter mais informações, consulte Problema do GitHub #2833.- 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.- Corrigido um problema em que um aplicativo podia falhar em uma verificação de bloqueio devido a reentrância inesperada.
- Corrigido um problema em que as cores
Hyperlinknão eram atualizadas corretamente ao alternar para um tema de elevado contraste.- Corrigido um problema em que alterar a coleção de um
ListViewem uma janela de plano de fundo pode mover incorretamente essa janela para o primeiro plano e tirar o foco.- Foi corrigido um problema da versão 1.6-experimental1 em que a definição de
AcrylicBrush.TintLuminosityOpacityem .xaml numa biblioteca de classes provocava uma falha 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 um
Buttonem umScrollViewero deixava pressionado.- Atualização do IntelliSense, que não incluía informações para muitos tipos e membros mais novos.
- Corrigido um problema em que clicar em uma área vazia de um
ScrollViewersempre movia o foco para o primeiro controle focalizável naScrollViewere rolava esse controle para a exibição. Para obter mais informações, consulte Problema do GitHub #597.- Corrigimos um problema em que o evento
Window.Activatedpor vezes era acionado várias vezes. Para obter mais informações, consulte Problema do GitHub #7343.- Corrigido um problema em que definir a propriedade
NavigationViewItem.IsSelectedcomotrueimpedia que seus sub-elementos fossem exibidos quando expandidos. Para obter mais informações, consulte Problema do GitHub #7930.- Corrigido um problema em que
MediaPlayerElementnão exibia corretamente legendas com efeitos de bordaNoneouDropShadow. Para obter mais informações, consulte Problema do GitHub #7981.- Corrigido um problema em que a propriedade
Flyout.ShowModenão era usada ao mostrar o submenu. Para obter mais informações, consulte Problema do GitHub #7987.- Corrigido um problema em que o marcador
NumberBox, por vezes, apresentava erros de arredondamento. Para obter mais informações, consulte Problema do GitHub #8780.- Corrigido um problema em que o uso de uma biblioteca compilada em relação a uma versão mais antiga do SDK de aplicativos do Windows podia causar um erro ao tentar localizar um tipo ou propriedade. Para obter mais informações, consulte Problema do GitHub #8810.
- Corrigido um problema em que o foco inicial do teclado não era definido ao iniciar uma janela. Para obter mais informações, consulte Problema do GitHub #8816.
- Corrigido um problema em que
FlyoutShowMode.TransientWithDismissOnPointerMoveAwaynão funcionava após a primeira vez que era mostrado. Para obter mais informações, consulte Problema do GitHub #8896.- Corrigido um problema em que alguns controlos não associavam corretamente as propriedades
ForegroundeBackgroundao modelo. Para obter mais informações, consulte Problema do GitHub #7070, #9020, #9029, #9083 e #9102.- Corrigido um problema em que
ThemeResources usados emVisualStateManagersetters não eram atualizados na mudança de tema. Isso geralmente afetava os controles em submenus. Para obter mais informações, consulte Problema do GitHub #9198.- Corrigido um problema em que
WebViewperdia o foco principal, causando eventos adicionais de desfoque/foco e outros problemas. Para obter mais informações, consulte Problema do GitHub #9288.- Corrigido um problema em que
NavigationViewpoderia apresentar um erro de ligação na saída de depuração. Para obter mais informações, consulte Problema do GitHub #9384.- Corrigido um problema em que os arquivos SVG que definiam uma caixa de exibição negativa não eram mais renderizados. Para obter mais informações, consulte Problema do GitHub #9415.
- Corrigido um problema em que a alteração da orientação
ItemsView.Layoutfazia com que um item fosse removido. Para obter mais informações, consulte Problema do GitHub #9422.- Corrigido um problema em que deslocar um
ScrollViewgerava muita saída de depuração. Para obter mais informações, consulte Problema do GitHub #9434.- Corrigido um problema em que
MapContorl.InteractiveControlsVisiblenão funcionava corretamente. Para obter mais informações, consulte Problema do GitHub #9486.- Corrigido um problema em que o evento
MapControl.MapElementClicknão era acionado corretamente. Para obter mais informações, consulte Problema do GitHub #9487.- 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 Problema do GitHub #9551.
- Corrigido um problema em que a alteração da propriedade
TeachingTip.Targetnão atualizava corretamente a sua posição. Para obter mais informações, consulte Problema do GitHub #9553.- Foi corrigido um problema em que os menus suspensos não respondiam no WebView2. Para obter mais informações, consulte Problema do GitHub #9566.
- Corrigido um vazamento de memória ao usar o
GeometryGroup. Para obter mais informações, consulte Problema do GitHub #9578.- Corrigido um problema em que o deslocamento por um número muito grande de itens de um
ItemRepeaterem umScrollViewpodia causar quadros de renderização vazios. Para obter mais informações, consulte Problema do GitHub #9643.- Corrigido um problema em que
SceneVisualnão funcionava.
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. Estes virão em uma futura versão 1.6.
Atualizações nativas de suporte ao AOT
Em 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.
Alterada Integração do SDK WebView2 do Edge
O SDK do Aplicativo Windows agora consome o SDK do Edge WebView2 como uma referência do NuGet em vez de incorporar uma versão codificada do SDK do Edge WebView2. O novo modelo permite que os aplicativos escolham uma versão mais recente do pacote
Microsoft.Web.WebView2em vez de serem limitados à versão com a qual o SDK de aplicativos do 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 Problema do GitHub #5689.
Novas APIs de Implementação de Pacotes
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, o código-fonte mais recente do WinUI 3 será agora publicado na ramificação principal do repositório GitHub microsoft-ui-xaml, permitindo assim a pesquisa de código nesse repositório.
- Adicionamos uma nova
ColorHelper.ToDisplayName()API, preenchendo essa lacuna da UWP.
- Problema conhecido: Algumas traduções linguísticas têm problemas de codificação de caracteres. Isso será corrigido na próxima versão 1.6.
- Adicionada uma nova classe
Microsoft.Windows.Globalization.ApplicationLanguages, que inclui notavelmente um novo recurso dePrimaryLanguageOverride. Para obter mais informações, consulte Problema do GitHub #4523.- Novas extensões permitem que os Provedores de Widgets disponibilizem conteúdo da web e anúncios para os Widgets.
Novas APIs para 1.6-experimental2
1.6-experimental2 inclui as seguintes novas APIs. Essas APIs não são experimentais, mas ainda não estão incluídas em uma versão estável do SDK de aplicativos 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
Questões conhecidas
- Para o tear-out 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 de bugs
- Corrigido um problema da versão 1.6-experimental1 em que
NumberBoxnão estava usando as cores corretas de primeiro plano e plano de fundo. Para obter mais informações, consulte a edição #9714 do GitHub.- Corrigido um problema em que eventos duplicados de
KeyUperam levantados para as teclas de seta e tab. Para obter mais informações, consulte Problema do GitHub #9399.- Corrigido um problema em que o evento
PowerManager.SystemSuspendStatusChangednão podia ser utilizado para obter oSystemSuspendStatus. Para obter mais informações, consulte Problema do GitHub #2833.- 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.- Corrigido um problema em que um aplicativo podia falhar em uma verificação de bloqueio devido a reentrância inesperada.
- Corrigido um problema da versão 1.6-experimental1 em que
TitleBarapenas mostrava o Ícone e o Título porque alguns elementos não apareciam durante o carregamento.- Corrigido um problema em que as cores
Hyperlinknão eram atualizadas corretamente ao alternar para um tema de elevado contraste.- Corrigido um problema em que alterar a coleção de um
ListViewem uma janela de plano de fundo pode mover incorretamente essa janela para o primeiro plano e tirar o foco.- Foi corrigido um problema da versão 1.6-experimental1 em que a definição de
AcrylicBrush.TintLuminosityOpacityem .xaml numa biblioteca de classes provocava uma falha 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 um
Buttonem umScrollViewero deixava pressionado.- Atualização do IntelliSense, que não incluía informações para muitos tipos e membros mais novos.
Versão 1.6 Experimental (1.6.0-experimental1)
Este é o último lançamento do canal experimental.
Para baixar, redirecione sua versão NuGet do SDK de Aplicativo Windows para 1.6.240531000-experimental1.
Alterações obrigatórias do projeto C# para 1.6-experimental1
Na versão 1.6-experimental1, os aplicativos gerenciados do SDK de Aplicativo Windows exigem Microsoft.Windows.SDK.NET.Ref
*.*.*.35-preview(ou posterior), que pode ser especificado via 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, os aplicativos gerenciados do SDK de Aplicativo Windows em C#/WinRT devem ser atualizados para Microsoft.Windows.CsWinRT
2.1.0-prerelease.240602.1(ou posterior).
Suporte nativo a AOT
Observação
Para o Windows App SDK 1.6.0 estável, as diretrizes a seguir estão obsoletas. Em vez disso, os projetos devem simplesmente definir PublishAot como verdadeiros incondicionalmente.
A propriedade do projeto .NET PublishAot agora é suportada para a compilação nativa Ahead-Of-Time. Para obter detalhes, consulte Implementação Nativa de AOT. Como a AOT se baseia no suporte a redução, muitas das orientações relacionadas a redução também se aplicam à AOT.
Para PublishAot suporte, 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.0-prerelease.240602.1 (ou posterior) para habilitar o gerador de código-fonte 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 seu 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
Nesta versão, o desenvolvedor é responsável por garantir que todos os tipos estejam devidamente enraizados para evitar cortes (como com alvos de {Binding} baseados em reflexão). Versões posteriores aprimorarão o C#/WinRT e o compilador XAML para automatizar o enraizamento sempre que possível, alertar os desenvolvedores sobre a redução de riscos e fornecer mecanismos para resolver.
Aulas parciais
A versão 2.1.0-prerelease.240602.1 do C#/WinRT também inclui suporte para PublishAot. Para habilitar uma classe para publicação AOT com C#/WinRT, ela deve primeiro ser marcada partial. Isso permite que o analisador de origem AOT C#/WinRT atribua as classes para análise estática. Somente as classes (que contêm métodos, os alvos 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 para {Binding} seja implementado, os tipos podem ser preservados da poda da seguinte forma: Dado o projeto P consumindo a assembly A com o tipo T no namespace N, que é apenas referenciado dinamicamente (sendo normalmente podado), T pode ser preservado da seguinte forma:
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 do descritor raiz, consulte Descritores de raiz.
Observação
Os pacotes de dependência que ainda não adotaram o suporte a AOT podem apresentar problemas de tempo de execução.
Melhoria do separador de separação do TabView
TabViewsuporta um novo modoCanTearOutTabsque fornece uma experiência aperfeiçoada ao arrastar separadores e deslocar para uma nova janela. Quando essa nova opção está ativada, o arrastar de guias é muito parecido com a experiência de arrastar guias no Edge e no Chrome, onde uma nova janela é criada imediatamente durante o arrasto, permitindo que o usuário a arraste até a borda da tela para maximizar ou encaixar 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 de 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 controlo do 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 automática e exibição de elementos com base na largura da janela
- Recursos 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 ao tema, botões de legenda padrão (min/max/close) e suporte de acessibilidade integrado
O
TitleBarcontrole é projetado para suportar várias combinações de barras de título, tornando-o flexível para criar a experiência que você deseja sem ter que escrever um monte de código personalizado. Tomamos feedback do protótipo da barra de título do kit de ferramentas da comunidade e estamos ansiosos para receber comentários adicionais!Problema conhecido: Nesta versão, o
TitleBarmostra apenas o ícone e o título devido a um problema onde alguns elementos não aparecem ao carregar. 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
- Não selado
ItemsWrapGrid. Esta deve ser uma alteração retrocompatível.PipsPagersuporta um novo modo onde pode abranger entre o primeiro e os últimos itens.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 de RatingControl.
Novas APIs para 1.6-experimental1
1.6-experimental1 inclui as seguintes novas APIs. Essas APIs não são experimentais, mas ainda não estão incluídas em uma versão estável do SDK de aplicativos do Windows.
Microsoft.UI.Xaml.Controls PipsPager WrapMode WrapModeProperty PipsPagerWrapMode None Wrap
APIs adicionais 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
- Os 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 de bugs
Esta versão inclui as seguintes correções de bugs:
- Corrigido um problema em que clicar em uma área vazia de um
ScrollViewersempre movia o foco para o primeiro controle focalizável naScrollViewere rolava esse controle para a exibição. Para obter mais informações, consulte Problema do GitHub #597.- Corrigimos um problema em que o evento
Window.Activatedpor vezes era acionado várias vezes. Para obter mais informações, consulte Problema do GitHub #7343.- Corrigido um problema que definia a propriedade
NavigationViewItem.IsSelectedcomotrue, impedindo que seus elementos fossem exibidos quando expandidos. Para obter mais informações, consulte Problema do GitHub #7930.- Corrigido um problema em que
MediaPlayerElementnão exibia corretamente legendas com efeitos de bordaNoneouDropShadow. Para obter mais informações, consulte Problema do GitHub #7981.- Corrigido um problema em que a propriedade
Flyout.ShowModenão era usada ao mostrar o submenu. Para obter mais informações, consulte Problema do GitHub #7987.- Corrigido um problema em que o marcador
NumberBox, por vezes, apresentava erros de arredondamento. Para obter mais informações, consulte Problema do GitHub #8780.- Corrigido um problema em que o uso de uma biblioteca compilada em relação a uma versão mais antiga do SDK de aplicativos do Windows pode afetar a tentativa de encontrar um tipo ou propriedade. Para obter mais informações, consulte Problema do GitHub #8810.
- Corrigido um problema em que o foco inicial do teclado não era definido ao iniciar uma janela. Para obter mais informações, consulte Problema do GitHub #8816.
- Corrigido um problema em que
FlyoutShowMode.TransientWithDismissOnPointerMoveAwaynão funcionava após a primeira vez que é mostrado. Para obter mais informações, consulte Problema do GitHub #8896.- Corrigido um problema em que alguns controlos não associavam corretamente as propriedades
ForegroundeBackgroundao modelo. Para obter mais informações, consulte Problema do GitHub #7070, #9020, #9029, #9083 e #9102.- Corrigido um problema em que
ThemeResources usados emVisualStateManagersetters não eram atualizados na mudança de tema. Isso geralmente afetava os controles em submenus. Para obter mais informações, consulte Problema do GitHub #9198.- Corrigido um problema em que
WebViewperdia o foco principal, causando eventos adicionais de desfoque/foco e outros problemas. Para obter mais informações, consulte Problema do GitHub #9288.- Corrigido um problema em que
NavigationViewpode mostrar um erro de vinculação na saída de depuração. Para obter mais informações, consulte Problema do GitHub #9384.- Corrigido um problema em que os arquivos SVG que definiam uma caixa de exibição negativa não eram mais renderizados. Para obter mais informações, consulte Problema do GitHub #9415.
- Corrigido um problema em que a alteração da orientação
ItemsView.Layoutfazia com que um item fosse removido. Para obter mais informações, consulte Problema do GitHub #9422.- Corrigido um problema em que deslocar um
ScrollViewgerava muita saída de depuração. Para obter mais informações, consulte Problema do GitHub #9434.- Corrigido um problema em que
MapContorl.InteractiveControlsVisiblenão funcionava corretamente. Para obter mais informações, consulte Problema do GitHub #9486.- Corrigido um problema onde o evento
MapControl.MapElementClicknão era disparado corretamente. Para obter mais informações, consulte Problema do GitHub #9487.- 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 Problema do GitHub #9551.
- Corrigido um problema em que a alteração da
TeachingTip.Targetpropriedade não atualiza corretamente sua posição. Para obter mais informações, consulte Problema do GitHub #9553.- Foi corrigido um problema em que os menus suspensos não respondiam no WebView2. Para obter mais informações, consulte Problema do GitHub #9566.
- Corrigido um vazamento de memória ao usar o
GeometryGroup. Para obter mais informações, consulte Problema do GitHub #9578.- Corrigido um problema em que percorrer um grande número de itens de um
ItemRepeaternumScrollViewpode causar quadros de renderização vazios. Para obter mais informações, consulte Problema do GitHub #9643.- Corrigido um problema em que
SceneVisualnão funcionava.
Windows developer