À propos du projet
ModernWPF est une bibliothèque indépendante et maintenue par la communauté qui ajoute le style Fluent et des contrôles modernes inspirés de WinUI aux applications Windows Presentation Foundation (WPF). Elle fonctionne directement sur WPF et ne remplace pas le runtime WPF ni n'agit comme WinUI.
Ce qu'elle fournit :
- Style Fluent pour les contrôles WPF standard, avec comportements Light, Dark, High Contrast et ressources compactes.
- Ports WPF de contrôles modernes tels que NavigationView, NumberBox, ContentDialog, InfoBar, CommandBarFlyout et ItemsRepeater.
- API de thème au niveau application, fenêtre et élément.
- Habillage de fenêtre moderne, intégration de barre de titre, utilitaires de mise en page et primitives de ressources.
- Audits de compatibilité basés sur les sources ainsi que des tests automatisés d'API, de ressources, de thème, d'accessibilité, de package et d'exécution.
Relation avec les projets en amont : ModernWPF s'appuie directement sur dotnet/wpf et préserve le comportement de WPF. Pour le style des contrôles standard, il utilise le thème Fluent de la plateforme sur .NET 10 et un backport compatible sur les cibles plus anciennes prises en charge. Les contrôles modernes supplémentaires sont portés depuis microsoft-ui-xaml là où WPF n'a pas d'équivalent, avec des adaptations WPF documentées. Le projet précise qu'il n'est affilié ni approuvé par Microsoft.
État du projet : la ligne 1.x est la ligne d'aperçu active, avec 1.0.0-preview.1 comme première base de référence pour l'audit d'API/ressources et la migration, et une feuille de route vers une version candidate à API figée et une version stable 1.0.0. La ligne 0.9.x est figée et non prise en charge ; aucune mise à jour ni correctif de sécurité n'est prévu, et la compatibilité source/binaire avec 0.9.x n'est pas promise. Un guide de migration couvre les changements de framework cible, les entrées de ressources, les API renommées et la suppression de l'adaptateur MahApps dans 1.x.
Cibles prises en charge : net462 et net8.0-windows7.0 utilisent le backport Fluent de ModernWPF ; net10.0-windows7.0 utilise le thème officiel PresentationFramework.Fluent. Les ressources retirées net45, netcoreapp3.0 et net5.0-windows ne font pas partie de 1.x.
Pour commencer : installez une version 1.x explicite (par exemple, dotnet add package ModernWpfUI --version 1.0.0-rc.1) afin que NuGet ne sélectionne pas un package 0.9.x figé. Ajoutez ThemeResources et FluentControlsResources à App.xaml, puis optez pour le style ModernWPF avec WindowHelper.UseModernWindowStyle et utilisez les contrôles de l'espace de noms XAML ui. Les applications nécessitant une migration progressive peuvent conserver temporairement ThemeResources plus XamlControlsResources.
Galerie : ModernWpf.Gallery est le catalogue interactif et l'exemple de développement du dépôt, démontrant les contrôles, les thèmes, l'habillage de fenêtre, la navigation, les dialogues, les flyouts et le comportement de saisie. C'est un exemple de projet, pas la galerie officielle WPF ou WinUI de Microsoft. La compilation nécessite Windows, le SDK sélectionné par global.json et la charge de travail de développement .NET desktop ; net462 nécessite également le Developer Pack .NET Framework 4.6.2. Les builds de solution et de tests ne doivent pas être exécutés en parallèle car les projets WPF peuvent entrer en conflit pour des fichiers intermédiaires partagés.
La documentation comprend la feuille de route 1.0, les notes de version pour les aperçus et la version candidate, un guide de migration 0.9.x, un contrat d'API publique 1.x et un document de parité des sources WinUI. Les contributions sont dirigées via Discussions, un formulaire structuré de bugs d'aperçu et Issues, avec une couverture de régression attendue pour les changements.
Licence : MIT. Les références de sources WPF et WinUI conservent leurs avis et licences respectifs en amont.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.