Compartilhar via


Novidades no WPF para visualização do .NET 10

Este artigo fornece uma visão geral de alto nível sobre as novidades com o WPF (Windows Presentation Foundation) no .NET 10 Preview. Para obter informações detalhadas, consulte os comunicados de lançamento.

O .NET 10 Preview 5 foi lançado em junho de 2025.

Anúncios de Lançamento

Cada comunicado de versão fornece informações detalhadas sobre as alterações do WPF para o .NET 10:

Aprimoramentos de desempenho

O desempenho foi melhorado substituindo estruturas de dados internas por tipos .NET base, como ReadOnlyCollection<T>. Isso minimizou as alocações nas caixas de diálogo de arquivos e automação da interface do usuário e acelerou as conversões de formato de pixel.

Desempenho aprimorado otimizando operações de cache, manipulação de matriz e migrando o carregador de coleção de fontes para o código gerenciado.

O desempenho foi otimizado em renderização de fontes, recursos dinâmicos, composição de entrada, rastreamento de logs, uso de expressões regulares e análise de XAML.

Alterações de estilo fluente

Várias correções de bugs foram feitas no .NET 10 e no WPF para melhorar o suporte ao estilo Fluent UI. O suporte ao estilo Fluent UI ainda está em andamento.

Aviso

O .NET 10 Preview 4 introduziu um bug relacionado aos estilos fluentes. Para obter mais informações, consulte as notas de versão do .NET 10 Preview 4.

Alterações na área de transferência

O WPF e o Windows Forms agora usam a mesma API de área de transferência. Ambas as tecnologias da área de trabalho unificam a forma como interagem com a área de transferência.

.NET 9 obsoletou BinaryFormatter, que é usado em algumas operações de área de transferência. Essas operações de área de transferência exigiam que você aceitasse o pacote de compatibilidade ou contornasse a operação. Para facilitar a transição de BinaryFormatter, o .NET 10 está obsoleto em determinados métodos de área de transferência para indicar que não devem ser usados. Mais métodos estão sendo adicionados para ajudar na serialização JSON com dados da área de transferência, contornando a necessidade de BinaryFormatter.

Correções

Foram resolvidas várias correções de bug, incluindo tipos de cursor de elemento de interface do usuário, problemas de falha quando fluxos de bitmap são nulos, erros de etapa de build e teste e pequenos bugs em BitmapMetadata e dependências nativas.

Problemas de localização resolvidos para ScrollViewer e ContextMenu.

Mais de 4.000 testes de unidade para System.Xaml e WindowsBase adicionados.

Desempenho aprimorado otimizando operações de cache, manipulação de matriz e migrando o carregador de coleção de fontes para o código gerenciado.

Limpeza de código

Ao sair do .NET Framework, deixou para trás atributos e código relacionados à segurança de acesso a código (CAS) que não foram utilizados. Muitos deles foram removidos na base de código do .NET.

  • Remova cadeias de caracteres de recurso CAS não utilizados e suas traduções de todas as bibliotecas.
  • Remova o código CAS e XBAP não utilizados de OleCmdHelper/ISecureCommand.
  • Remova o código CAS não utilizado de FontSourceCollection/FontSource.

Realizou limpezas abrangentes de código, incluindo padronização de sintaxe e clareza de argumento, para melhorar a legibilidade e a manutenção do código. Os padrões de depuração foram modernizados e construções legadas, como ArrayList, foram eliminadas progressivamente para melhorar a manutenção.

Novas APIs

O colaborador da comunidade bstordrup aprimorou o MessageBox com mais opções de botões e de resultados. Para obter mais informações, consulte #9613.

namespace System.Windows
{
    public enum MessageBoxButton
    {
        OK = 0,
        OKCancel = 1,
+       AbortRetryIgnore = 2,
        YesNoCancel = 3,
        YesNo = 4,
+       RetryCancel = 5,
+       CancelTryContinue = 6,
    }

    public enum MessageBoxResult
    {
        None = 0,
        OK = 1,
        Cancel = 2,
+       Abort = 3,
+       Retry = 4,
+       Ignore = 5,
        Yes = 6,
        No = 7,
+       TryAgain = 10,
+       Continue = 11,
    }
}

Alterações diversas

  • Compilação de marcação de tempo de design incorporada para facilitar fluxos de trabalho de desenvolvimento mais suaves.