Sobre o projeto
ModernWPF é uma biblioteca independente, mantida pela comunidade, que adiciona estilo Fluent e controles modernos inspirados no WinUI a aplicativos Windows Presentation Foundation (WPF). Ela é executada diretamente sobre o WPF e não substitui o runtime do WPF nem atua como WinUI.
O que ela oferece:
- Estilo Fluent para controles WPF nativos, com comportamento de recursos Light, Dark, High Contrast e compacto.
- Portes para WPF de controles modernos como NavigationView, NumberBox, ContentDialog, InfoBar, CommandBarFlyout e ItemsRepeater.
- APIs de tema em nível de aplicativo, janela e elemento.
- Moldura de janela moderna, integração com a barra de título, auxiliares de layout e primitivas de recursos.
- Auditorias de compatibilidade com base no código-fonte, além de testes automatizados de API, recursos, temas, acessibilidade, pacotes e runtime.
Relação com projetos upstream: o ModernWPF é construído diretamente sobre dotnet/wpf e preserva o comportamento do WPF. Para o estilo de controles nativos, ele usa o tema Fluent da plataforma no .NET 10 e um backport compatível em alvos mais antigos suportados. Controles modernos adicionais são portados do microsoft-ui-xaml onde o WPF não tem equivalente, com adaptações documentadas para WPF. O projeto declara não ser afiliado nem endossado pela Microsoft.
Status do projeto: a linha 1.x é a linha de pré-visualização ativa, com 1.0.0-preview.1 como a primeira linha de base de auditoria de API/recursos e migração e um roteiro rumo a um release candidate com API congelada e ao 1.0.0 estável. A linha 0.9.x está congelada e sem suporte; não há atualizações nem correções de segurança planejadas, e a compatibilidade de código-fonte/binária com 0.9.x não é prometida. Um guia de migração cobre mudanças de framework de destino, entradas de recursos, APIs renomeadas e a remoção do adaptador MahApps na 1.x.
Alvos suportados: net462 e net8.0-windows7.0 usam o backport Fluent do ModernWPF; net10.0-windows7.0 usa o tema oficial PresentationFramework.Fluent. Os ativos descontinuados net45, netcoreapp3.0 e net5.0-windows não fazem parte da 1.x.
Primeiros passos: instale uma versão explícita da 1.x (por exemplo, dotnet add package ModernWpfUI --version 1.0.0-rc.1) para que o NuGet não selecione um pacote 0.9.x congelado. Adicione ThemeResources e FluentControlsResources ao App.xaml, depois habilite o estilo ModernWPF em uma janela com WindowHelper.UseModernWindowStyle e use controles do namespace XAML ui. Aplicativos que precisam de uma migração escalonada podem manter temporariamente ThemeResources mais XamlControlsResources.
Galeria: ModernWpf.Gallery é o catálogo interativo e exemplo de desenvolvimento do repositório, demonstrando controles, temas, moldura de janela, navegação, diálogos, flyouts e comportamento de entrada. É um exemplo do projeto, não a Galeria oficial de WPF ou WinUI da Microsoft. A compilação exige Windows, o SDK selecionado pelo global.json e a carga de trabalho de desenvolvimento desktop do .NET; net462 também precisa do .NET Framework 4.6.2 Developer Pack. Compilações da solução e dos testes não devem ser executadas em paralelo porque projetos WPF podem disputar arquivos intermediários compartilhados.
A documentação inclui o roteiro 1.0, notas de versão das pré-visualizações e do release candidate, um guia de migração 0.9.x, um contrato de API pública 1.x e um documento de paridade de código-fonte com o WinUI. As contribuições são direcionadas por meio de Discussions, um formulário estruturado de bugs de pré-visualização e Issues, com cobertura de regressão esperada para as mudanças.
Licença: MIT. As referências de código-fonte do WPF e do WinUI mantêm seus respectivos avisos e licenças upstream.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.