Quel Template de modern UI pour WPF ?

Je viens de passer du temps avec Microsoft Template Studio qui installe un Template de modern UI autour de MahApps.Metro pour WPF avec plein d'autres fonctionnalités.

Alors existe t-il d'autres templates de modern UI pour WPF ? 

WPF modern UI Frounisseurs

Dans WPF, comme fournisseurs d'UI moderne et composants graphiques, on retrouve classiquement :

Telerik.com

Infragistics/products/WPF

DevExpress

...

WPF modern UI Gratuits

On va essayer de trouver quelques bons projets de WPF Modern UI. Pour l'instant pas de classement mais une découverte rapide des différentes solutions qui nous sont proposées.

Kiranna ModernWPF

GitHub - Kinnara/ModernWpf

Kinnara/ModernWpf est un travail très intéressant et très important, autour des pacakges UI dédiés à WPF. Il part du framework de base Microsoft.WindowsDesktop.App.WPF pour réaliser une application complète de contrôles utilisateur AutomationPeer.

Un de ses projets utilise (est dépendant de) le package MahApps.Metro mais pas les autres.

Une série de Samples démontrent l'utilisation de Fluent.Ribbon, Dragablz, FluentWPF, MahApps.Metro.

\\Visual Studio 2022\Samples\Kinnara-ModernWPF\ModernWPF Net6-7\ModernWPF\ModernWpf.SampleApp\ModernWpf.SampleApp.csproj

Voici un exemple de la Gallery :

WPF UI - ModernWpf.SampleApp
WPF UI - ModernWpf.SampleApp

Intégration du Package MahMetro :

\\Visual Studio 2022\Samples\Kinnara-ModernWPF\ModernWPF Net6-7\ModernWPF\samples\MahAppsSample\MahAppsSample.csproj

ModernWPF- MahAppsSample
ModernWPF- MahAppsSample

Une véritable mine d'or pour ceux qui souhaitent maîtriser WPF UI la plus part des ressources viennent de MahApps mais pas seulement.

If you need the ModernWpf from Yimeng Wu for .NET 6.0 or .NET 7.0 It's here in Discussion Tab :

GitHub - Kinnara/ModernWpf - Discussion #513 Net 6 and Net 7

Un travail très intéressant d'évolution de la solution vers .NET 6.0 et .NET 7.0 qui donne une idée du travail à effectuer pour migrer une application depuis les anciens frameworks vers .NET 6.0.

MahApps.Metro

C'est le projet utilisé par Microsoft TemplateStudio pour WPF et d'autres ...

Github - MahApps/MahApps.Metro

Pour l'instant, je n'arrive pas encore à exécuter ce projet sur ma plateforme de développement à cause d'une référence au framework 4.7 ... que je ne souhaite pas installer, bref... je prends le code de release :

https://github.com/MahApps/MahApps.Metro/releases 2.4.9, je supprime "net47" dans les propriétés des projets et ça fonctionne : 

MahMapps.Metro elegant WPF UI

Vous pouvez trouver la structure des NuGets MahApps.Metro dans le projet :

https://github.com/MahApps/MahApps.Metro/wiki/Visual-Studio-Templates

Pour démarrer rapidement avec MahApps.Metro c'est ici :

MahApps - Guides Quick-start - Installation

Mais alors vous démarrez tout en bas, avec un NutGet et le Guide pour créer votre première page MetroWindow :

Install Nuget MahApps.Metro
Install Nuget MahApps.Metro for WPF solution

Mais croyez moi il du chemin à faire pour obtenir une application WPF digne de ce nom.

Fluent.Ribbon

C'est le projet de Base a utiliser, si vous souhaitez développer une application WPF autour d'un "Ribbon" un Ribbon est bien plus qu'un ruban, c'est un menu Windows Office Like c'est donc un menu extrêmement efficace pour lancer tout un tas de commandes depuis ce Ribbon.

Github -Fluent.Ribbon.Showcase

Voici l'interface UI du projet Fluent.Ribbon exécutée par Visual Studio 2022 Community :

Fluent.Ribbon WPF UI
Fluent.Ribbon WPF UI

Le problème étant que ce Ribbon est très "Windows Like" aujourd'hui on préférera des menus plus simples.

Mais ce projet est une mine d'or pour les développeurs WPF car il met en oeuvre un nombre incalculable de techniques pour développer une belle UI pratique.

WPF UI Fluent Modern Lepo

WpfUI/lepo

GitHub - lepoco - wpfui

C'est dans la même vaine, un projet très complet avec Extension, Template d'application WPF.

Open source dans le GitHub, respect des licences :

https://github.com/lepoco/wpfui/tree/main/src/Wpf.Ui

Quel model MvvM ? WPF UI Lepoco n'utilise pas Prism c'est le CommunityToolkit.Mvvm

De très intéressants Scripts dans le répertoire :

https://github.com/lepoco/wpfui/tree/main/scripts

Si vous souhaitez exécuter la Solution Wpf.Ui.Demo avec Visual Studio 2022 et .NET 6.0, il vous suffit de supprimer les références aux frameworks ;netcoreapp3.1;net48;net472;net462

Dans le fichier : /Wpf.Ui/Wpf.Ui.csproj :

<TargetFrameworks>net7.0-windows;net6.0-windows;netcoreapp3.1;net48;net472;net462</TargetFrameworks>

Exécution du projet Wpf.Ui.Demo.Mvvm.csproj :

Modern UI WPF Lepoco - Wpf.Ui.Demo.sln
Modern UI WPF Lepoco - Wpf.Ui.Demo.sln

Exécution du projet Wpf.Ui.Gallery.sln :

ModernWPF UI Leco.co Gallery
ModernWPF UI Leco.co Gallery

C'est un projet extrêmement impressionnant avec une quantité de codes source gigantesque pour faire fonctionner tout cela.

J'ai installé l'extension WPF UI :

https://marketplace.visualstudio.com/items?itemName=lepo.wpf-ui

Dans Visual Studio 2022 :

WPF UI lepo.co
WPF UI lepo.co

C'est vraiment très complet, voici la structure du Template d'Application : 

WPF UI Lepo.co
WPF UI Lepo.co

On a vraiment un très beau et très complets Template d'application WPF.

Adonis UI

Adonis UI/Lightweight UI toolkit for WPF

benruehl/adonis-ui: Lightweight UI toolkit for WPF applications offering classic but enhanced windows visuals

Semble prometteur tout en bas de la page une Demo à télécharger.

To Be Continued...

WPF Modern UI - Conclusion

Me voilà avec des tonne de code sources d'exemples pour créer mon application WPF.

Je vais continuer de cherche d'autres exemples de Modern UI Template mais je peux déjà dire que j'ai atteins mon objectif, consolider mes connaissances en développement d'applications WPF modernes. Il y a du chemin de parcouru par les communautés ... depuis silverlight ;-))

Je vais également étudier de plus prêt tout le code fournit avec ces exemples de Modern UI for WPF pour en décrire la structure ou l'architecture Navigation, Configuration, MvvM, etc.

Aucun commentaire:

Enregistrer un commentaire

Pour plus d'interactivité, n'hésitez pas à laisser votre commentaire.