Faire en sorte que les applications WPF soient de style Metro, même dans Windows 7? (Fenêtre Chrome / Theming / Theme)

J’aime la fenêtre chrome sur la nouvelle suite Office et Visual Studio:

entrer la description de l'image ici

Je suis encore en train de développer des applications pour Windows 7, mais je me demande s’il existe un moyen simple et rapide (lire: le style WPF ou la bibliothèque Windows) pour émuler ce style. J’ai déjà utilisé un style de fenêtre dans le passé, mais il est difficile de le rendre parfait.

Est-ce que quelqu’un sait s’il existe des modèles ou des bibliothèques pour append une apparence “Modern UI” à mes applications WPF?

Ce que j’ai fait, c’est créer ma propre fenêtre et mon propre style. Parce que j’aime avoir le contrôle sur tout et je ne voulais pas que certaines bibliothèques externes utilisent simplement une fenêtre. J’ai regardé MahApps.Metro déjà mentionné sur GitHub

MahApps

et aussi très belle interface utilisateur moderne sur CodePlex . (.NET4.5 uniquement)

Interface utilisateur moderne )

Il y en a une de plus c’est Elysium mais je n’ai vraiment pas essayé celle-ci.

Élysée

Le style que j’ai fait était vraiment facile quand j’ai regardé comment ça se passait dans ces cas-là. Maintenant, j’ai ma propre fenêtre et je peux faire ce que je veux avec xaml … pour moi, c’est la principale raison pour laquelle j’ai fait le mien. Et j’en ai fait une de plus pour vous 🙂 Je devrais probablement dire que je ne pourrais pas le faire sans explorer Modern UI, c’était une aide précieuse. J’ai essayé de le faire ressembler à VS2012 Window. Ça ressemble à ça.

Ma fenêtre

Voici le code (veuillez noter qu’il cible .NET4.5)

public class MyWindow : Window { public MyWindow() { this.CommandBindings.Add(new CommandBinding(SystemCommands.CloseWindowCommand, this.OnCloseWindow)); this.CommandBindings.Add(new CommandBinding(SystemCommands.MaximizeWindowCommand, this.OnMaximizeWindow, this.OnCanResizeWindow)); this.CommandBindings.Add(new CommandBinding(SystemCommands.MinimizeWindowCommand, this.OnMinimizeWindow, this.OnCanMinimizeWindow)); this.CommandBindings.Add(new CommandBinding(SystemCommands.RestoreWindowCommand, this.OnRestoreWindow, this.OnCanResizeWindow)); } private void OnCanResizeWindow(object sender, CanExecuteRoutedEventArgs e) { e.CanExecute = this.ResizeMode == ResizeMode.CanResize || this.ResizeMode == ResizeMode.CanResizeWithGrip; } private void OnCanMinimizeWindow(object sender, CanExecuteRoutedEventArgs e) { e.CanExecute = this.ResizeMode != ResizeMode.NoResize; } private void OnCloseWindow(object target, ExecutedRoutedEventArgs e) { SystemCommands.CloseWindow(this); } private void OnMaximizeWindow(object target, ExecutedRoutedEventArgs e) { SystemCommands.MaximizeWindow(this); } private void OnMinimizeWindow(object target, ExecutedRoutedEventArgs e) { SystemCommands.MinimizeWindow(this); } private void OnRestoreWindow(object target, ExecutedRoutedEventArgs e) { SystemCommands.RestoreWindow(this); } } 

Et ici des ressources:

  #FF2D2D30 #FF3F3F41 #FF007ACC #FFF4F4F5       

La solution que j’ai finalement choisie était MahApps.Metro ( github ), qui (après l’avoir utilisé sur deux logiciels maintenant), je considère un excellent kit d’interface utilisateur (grâce à Oliver Vogel pour la suggestion) .

Style de fenêtre

Il épingle l’application avec très peu d’effort et dispose des adaptations des contrôles Windows 8 standard. C’est très robuste.

Filigrane de la zone de texte

Une version est disponible sur Nuget:

Vous pouvez installer MahApps.Metro via Nuget en utilisant l’interface graphique (clic droit sur votre projet, Gérer les références Nuget, rechercher «MahApps.Metro») ou via la console:

PM> Install-Package MahApps.Metro

C’est aussi gratuit – même pour un usage commercial.

Mise à jour 29/10/2013:

J’ai découvert que la version Github de MahApps.Metro est remplie de contrôles et de styles qui ne sont pas disponibles dans la version actuelle de nuget, notamment:

Datagrids:

entrer la description de l'image ici

Fenêtre propre:

entrer la description de l'image ici

Flyouts:

entrer la description de l'image ici

Carrelage:

entrer la description de l'image ici

Le repository github est très actif avec pas mal de consortingbutions d’utilisateurs. Je recommande de le vérifier.

Je recommanderais l’interface utilisateur moderne pour WPF .

Il a un responsable très actif, il est génial et gratuit!

Interface utilisateur moderne pour WPF (Capture d'écran de l'application exemple)

Je porte actuellement des projets sur MUI, la première (et entre-temps la deuxième) impression est juste wow!

Pour voir MUI en action, vous pouvez télécharger XAML Spy basé sur MUI.

EDIT: Utiliser l’interface utilisateur moderne pour WPF quelques mois et je l’adore!

Basé sur la réponse de Viktor La Croix avec la source ci-dessus, je le changerais pour utiliser ce qui suit:

Exemple de police Marlett

Il est préférable d’utiliser la police Marlett plutôt que les points de données de chemin pour les boutons Réduire, Restaurer / Agrandir et Fermer.

            

Si vous êtes prêt à payer, je vous recommande fortement Telerik Components for WPF . Ils offrent d’excellents styles / thèmes et ont des thèmes spécifiques à la fois pour Office 2013 et Windows 8 (EDIT: et également un style à thème Visual Studio 2013). Cependant, en offrant bien plus que de simples styles, vous obtiendrez tout un tas de contrôles vraiment utiles.

Voici comment cela se présente en action (Captures d’écran tirées d’échantillons telerik):

Telerik Dashboard Sample

Exemple de tableau de bord CRM Telerik

Voici les liens vers l’ exemple de tableau de bord exécutif telerik (première capture d’écran) et ici pour le tableau de bord CRM (deuxième capture d’écran).

Ils offrent un essai de 30 jours, il suffit de tenter le coup!