Partilhar via


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

O canal estável fornece versões do SDK do Aplicativo Windows com suporte para uso por aplicativos em ambientes de produção. Os aplicativos que usam a versão estável do SDK do Aplicativo Windows também podem ser publicados no Microsoft Store.

Links importantes:

Versão de canal estável mais recente:

Downloads para o SDK do Aplicativo Windows

Observação

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

Versão 1.5.8 (1.5.241107002)

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

  • Corrigida uma possível falha quando a fila de entrada no thread parece estar em um estado ruim.
  • Corrigidas algumas falhas potenciais ao usar {x:Bind} , verificando se há nulo em todos os componentes. Os aplicativos que desejam essa correção precisam ser recompilados com esta versão.

Versão 1.5.7 (1.5.241001000)

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

  • Adicionada detecção para um cenário raro em que o aplicativo para de renderizar e nunca se recupera.
  • Corrigida uma possível falha quando um thread da interface do usuário não é inicializado.
  • Corrigido um possível problema em que um menu de uma CommandBar pode ter sido aberto incorretamente em vez de para baixo quando a CommandBar estava na parte inferior da janela.

Versão 1.5.6 (1.5.240802000)

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

  • Corrigido um problema com InputNonClientPointerSource as teclas de entrada Mín/Máx/Fechar. Para obter mais informações, consulte o problema #9749 do GitHub.
  • Corrigida uma possível falha ao fechar uma janela ao usar um touchpad.

Versão 1.5.5 (1.5.240627000)

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

  • Corrigida uma possível falha durante o carregamento da imagem quando a fonte da imagem é alterada antes da conclusão do carregamento.
  • Corrigida uma possível falha ao usar InputNonClientPointerSourceo .
  • Corrigido um problema em que uma janela contendo apenas um controle WebView2 não definia corretamente o foco inicial do teclado no WebView2, deixando-o inutilizável pelo teclado e pelas ferramentas de acessibilidade. Para obter mais informações, consulte o problema do GitHub WebView2Feedback#2330.

Versão 1.5.4 (1.5.240607001)

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

  • Corrigido um problema com a correção do problema #8857 do GitHub para mesclar corretamente o resources.pri de uma biblioteca com o resources.pri do aplicativo.
  • Corrigido um problema em que o WebView2 enviava eventos extras blur e focus a cada clique. Para obter mais informações, consulte o problema #9288 do GitHub. Isso também corrige problemas com menus suspensos que não respondem, como visto no problema #9566 do GitHub.
  • Corrigido um problema em que a criação de uma nova janela ou pop-up cancelava qualquer operação de arrastar em andamento. Para obter mais informações, consulte o problema #9360 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 x:Bind que não se 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 um cursor de redimensionamento era mostrado incorretamente nas bordas da barra de título quando uma janela era maximizada, o que também causava um comportamento incorreto ao clicar ou arrastar nessas áreas. Para obter mais informações, consulte o problema #8665 do GitHub.

Versão 1.5.3 (1.5.240428000)

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

  • Foi corrigido um problema em que o ItemsRepeater às vezes fazia com que sua janela fosse trazida para a frente.
  • Foi corrigida uma possível falha quando o estado de transparência de um AcrylicBrush era atualizado.
  • Foi corrigido um problema em que o ItemsRepeater não gerava itens suficientes se estivesse em um pop-up ShouldConstrainToRootBounds="false" mais alto ou mais largo do que a janela principal.
  • Foi corrigido um problema em que o erro MSB4086 poderia ocorrer no momento da compilação se o arquivo de projeto não especificasse uma TargetPlatformVersion. Esse erro foi corrigido como parte do problema nº 9531 do GitHub.

Versão 1.5.2 (1.5.240404000)

Esta é uma versão de manutenção do SDK de Aplicativos do Windows que inclui correções de bugs críticos para a versão 1.5 e um novo recurso para provedores de feed de Widgets.

Atualizações do provedor de feed de widgets

  • Os provedores de feed agora podem mostrar anúncios no Painel de widgets:
    • A nova FeedManager.TryShowAnnouncement API permite que um Provedor de feeds solicite que o Painel de widgets mostre seus anúncios. Para mostrar seu anúncio, crie um objeto FeedAnnouncement e chame a API FeedManager.TryShowAnnouncement.
    • Os anúncios de feed terão seus próprios selos exibidos na barra de tarefas, e eles podem ser personalizados usando a API FeedAnnouncement.
  • Os provedores de feed agora podem optar por receber informações dos relatórios de análises e de erros sobre seu provedor à medida que um usuário interage com ele. Para aceitar, implemente as interfaces IFeedProviderAnalytics e/ou IFeedProviderErrors pelo seu provedor.

As atualizações do provedor de feed incluem as seguintes novas APIs:

Microsoft.Windows.Widgets.Feeds.Providers
 
    FeedAnalyticsInfoReportedArgs
    FeedErrorInfoReportedArgs
    FeedManager
        SendMessageToContent
        TryShowAnnouncement
 
    FeedMessageReceivedArgs
    FeedResourceRequest
    FeedResourceRequestedArgs
    FeedResourceResponse
    IFeedAnnouncementInvokedTarget
    IFeedManager2
    IFeedProviderAnalytics
    IFeedProviderErrors
    IFeedProviderMessage
    IFeedResourceProvider
Microsoft.Windows.Widgets.Notifications
 
    AnnouncementActionKind
    AnnouncementTextColor
    FeedAnnouncement
    FeedAnnouncementInvokedArgs

Correções de bug

  • Corrigido um problema em que DispatcherTimer não disparava no momento correto se a tela principal não estivesse funcionando a 60 Hz.
  • Corrigido um problema em que uma janela do editor de método de entrada (IME) da caixa de texto era posicionada incorretamente ao ser executada em um fator de escala diferente de 100%. Para obter mais informações, confira o issue n.º 9382 do GitHub.
  • Corrigido um problema em que uma operação de arrastar e soltar iniciada a partir de outro aplicativo pode não permitir as operações certas de Copiar/Mover/Vincular.
  • Corrigida uma falha potencial quando um ItemsSource do ListView é redefinido e recebe foco imediatamente.
  • Corrigido um problema em que pop-ups/submenus de ShouldConstrainToRootBounds="false" não aplicavam nenhuma transformação de escala herdada. Para mais informações, consulte os problemas 9118 e 9433 do GitHub.
  • Corrigida uma falha potencial quando um objeto Composition é destruído com uma animação ainda em execução.
  • Corrigida uma falha potencial no desligamento em NavigationView::RevokeNavigationViewItemRevokers.

Versão 1.5.1 (1.5.240311000)

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

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

Versão 1.5

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

Em um aplicativo existente do SDK do Aplicativo Windows 1.4, é possível atualizar o pacote Nuget para 1.5.240227000 (confira a seção Atualizar um pacote em Instalar e gerenciar pacotes no Visual Studio usando o Gerenciador de Pacotes NuGet).

Para visualizar o runtime atualizado e o MSIX, confira Downloads para o SDK do Aplicativo Windows.

Atualizações de tempo de execução e desligamento de Ilhas XAML

Há uma distinção comportamental entre o WinAppSDK 1.4 e o WinAppSDK 1.5 para aplicativos baseados em Ilhas XAML quando a última janela XAML é fechada em qualquer thread.

  • No WinAppSDK 1.4, o tempo de execução de XAML sempre sai do loop de eventos do thread quando a última janela XAML em um thread é fechada.
  • No WinAppSDK 1.5:
    • Se seu aplicativo for da área de trabalho WinUI, o comportamento padrão ainda será igual ao do WinAppSDK 1.4.
    • Se você estiver usando XAML para a API DesktopWindowXamlSource ("Ilhas XAML"), o comportamento padrão será que o XAML não sairá automaticamente do loop de eventos do thread.
    • Nos dois modos, é possível alterar esse comportamento definindo a propriedade Application.DispatcherShutdownMode.

Para saber mais, consulte a documentação da propriedade Application.DispatcherShutdownMode quando disponível. Isso completa a proposta nº 8492 do GitHub.

Há uma distinção comportamental entre o WinAppSDK 1.4 e o WinAppSDK 1.5 para aplicativos baseados em Ilhas XAML na vida útil do tempo de execução de XAML:

  • No WinAppSDK 1.4, o tempo de execução do XAML será desligado em um thread se todos os objetos WindowsXamlManager e DesktopWindowXamlSource em certo thread forem fechados ou desligados, ou a execução DispatcherQueue nesse thread for encerrada (nesse caso, o tempo de execução do XAML será desligado durante o estágio DispatcherQueue.FrameworkShutdownStarting).
  • No WinAppSDK 1.5, o tempo de execução do XAML é desligado em um thread somente quando o DispatcherQueue em execução nesse thread é desligado (o tempo de execução do Xaml sempre é desligado durante o estágio DispatcherQueue.FrameworkShutdownStarting).

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

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

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

Controle de mapas WinUI

O controle Maps do WinUI já está disponível! Esse controle é das plataformas WebView2 e Azure Mapas, fornecendo os seguintes recursos:

  • Movimento panorâmico e ampliação com os botões do mapa ou toque.
  • Alterar o estilo do mapa para exibição de satélite, terreno ou rua.
  • Adicionando programaticamente pinos interativos com ícones personalizáveis pelo desenvolvedor ao mapa.
  • Personalização do desenvolvedor para onde o mapa está centrado na carga inicial.
  • Controle para desenvolvedores sobre ocultar ou mostrar os botões para movimento panorâmico, ampliação e estilos de mapa.

Controle de mapas WinUI 3

Observação

Para usar o controle Maps, você precisará de uma chave do Azure Mapas. Para criar a chave, consulte a página de documentação do Azure Mapas para criar um aplicativo Web.

O controle Maps é totalmente novo e agradecemos seus comentários para avaliar a direção futura!

Novo controle SelectorBar

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

Controle de WinUI 3 SelectorBar

Rótulos nos comandos principais CommandBarFlyout

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

Rótulos WinUI 3 CommandBarFlyout

Suporte a WebView2 para ambiente/opções personalizadas

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

Suporte para .NET 8

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

Depuração e disponibilidade de origem aprimoradas

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

Funcionalidade aprimorada para depuração de ciclos de layout

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

Outros recursos novos do WinAppSDK

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

Novos recursos sendo lançados separadamente

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

Outros recursos planejados anteriormente

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

  • Janelas tabuladas
  • Suporte de arrastar e soltar para WebView2
    • Para esclarecer, na versão 1.5 há suporte para arrastar para o WebView2, como arrastar um PNG do Explorador de Arquivos para o Bing para Pesquisa Visual. O trabalho está em andamento na versão 1.6 para dar suporte ao arrastar para fora do WebView2.
  • Investigações sobre a exibição de tabela e controles de tinta

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

Problemas conhecidos

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

Correções de bug

  • Corrigido um problema em que StackPanel aplicava espaçamento a itens recolhidos. Para obter mais informações, confira o issue n.º 916 do GitHub.
  • Corrigidos problemas com controles de rolagem que não funcionavam mais depois de fechar outra janela do aplicativo. Para obter mais informações, consulte os problemas nº 9292 e nº 9355 do GitHub.
  • Corrigida uma falha ao definir DebugSettings.EnableFrameRateCounter como true antes do primeiro quadro renderizado. Para obter mais informações, confira o issue n.º 2835 do GitHub.
  • Corrigido um possível erro de compilação para C++ em que alguns cabeçalhos não incluíam dependências necessárias. Observe que a alteração da ordem de #include pode afetar alguns aplicativos, como possivelmente causar um erro de compilação para IInspectable se o aplicativo estiver usando uma versão do C++/WinRT anterior a 2023. Para obter mais informações, confira o issue n.º 9014 do GitHub.
  • Corrigido um problema em que ElementName as associações não funcionavam dentro do ItemsRepeater DataTemplate. Para obter mais informações, confira o issue n.º 560 do GitHub.
  • Corrigidas falhas ao executar um aplicativo no Visual Studio com a barra de ferramentas no aplicativo habilitada. O Visual Studio 17.8 Preview 2 ou posterior é necessário para obter totalmente as correções. Para obter mais informações, confira o issue n.º 8806 do GitHub.
  • Corrigido um problema em que AnnotatedScrollbar às vezes podia falhar ao rolar rapidamente.
  • Corrigido um problema em que o texto do menu às vezes ficava truncado.
  • Problema corrigido em que dicas de ensino não recebiam o devido foco. Para obter mais informações, confira o issue n.º 3257 do GitHub.
  • Problema corrigido que travava o aplicativo ao definir o TailVisibility de um TeachingTip como Recolhido na inicialização. Para saber mais, confira o problema n.º 8731 do GitHub.
  • Corrigido um problema com a forma como os arquivos PRI eram tratados ao usar bibliotecas. Para obter mais informações, confira o issue n.º 8857 do GitHub.
  • Corrigido um problema da versão 1.5-experimental2 em que a DLL de projeção não era gerada. Para obter mais informações, confira o issue n.º 4152 do GitHub.
  • Problema corrigido em que o botão de reticências no pop-up de formatação de texto do RichEditBox não exibia a lista de ações devidamente. Para obter mais informações, confira o issue n.º 9140 do GitHub.
  • Problema corrigido em que ListView não tratava adequadamente aceleradores de teclado. Para saber mais, confira o problema n.º 8063 do GitHub.
  • Problema corrigido de violação de acesso com o uso de AccessKey para fechar uma janela. Para obter mais informações, confira o issue n.º 8648 do GitHub.
  • Corrigida uma falha ao usar um AccessKey para fechar uma janela. Para obter mais informações, confira o issue n.º 9002 do GitHub.
  • Problema corrigido que afetava o alinhamento de texto em um MenuFlyoutItem em um MenuBar. Para obter mais informações, confira o issue n.º 8755 do GitHub.
  • Problema corrigido em que o texto destacado não permanecia destacado ao clicar com o botão direito do mouse. Para obter mais informações, confira o issue n.º 1801 do GitHub.
  • Problema corrigido que levava janelas inativas a travar o aplicativo quando fechado. Para obter mais informações, confira o issue n.º 8913 do GitHub.
  • Problema corrigido que podia travar aplicativos ao rolar com o botão do meio do mouse e, logo depois, clicar com o botão esquerdo do mouse. Para obter mais informações, confira o issue n.º 9233 do GitHub.
  • Corrigido um problema que provocava falha na inicialização dos aplicativos ao usar um NavigationViewItem personalizado. Para obter mais informações, confira o issue n.º 8814 do GitHub.
  • Corrigido um problema do NavigationView em que o botão de reticências gerava um erro incorretamente. Para obter mais informações, confira o issue n.º 8380 do GitHub.
  • Corrigido um problema em que um SystemBackdrop não era renderizado corretamente em um aplicativo com várias janelas. Para obter mais informações, confira o issue n.º 8423 do GitHub.
  • Corrigido um problema de duplicação ao inserir no início de um ObservableCollection. Para obter mais informações, confira o issue n.º 8370 do GitHub.