Wpf message box et wpf folder selector

Description

Il n'existe pas en WPF un message box stylable, comme le peuvent être tous les composants WPF.
Cette source propose donc une manière de créer une message box stylable donc l'utilisation est quasi-aussi simple que celle d'un message box classique.

Elle prend juste en paramètre un uri ou un objet string contenant le style à charger pour la message box.

La message box est créée de la manière suivante :

Une bordure pour créer les bords de la boite.
Une grille principale qui contient :
- 3 lignes
- 2 colonnes

La première ligne contient une grille qui s'étant sur deux colonnes.
Dans cette grille est contenu un TextBlock pour le titre de la boite. (Utile si vous avez passé None au WindowStyle)

La deuxième ligne contient :
- Une image (error, information, question, warning) dans la première colonne. L'image est optionnelle (None)
- Le message à afficher dans la deuxième colonne.

La dernière ligne contient un stackpanel.
Ce stack panel contient 4 boutons (Ok, Yes, No, Cancel) qui sont personnalisable au niveau texte, pour pouvoir autoriser le multilangue.

Les boutons peuvent être flaggés mais le programme n'envoie pas d'erreur si les flags ne sont pas logiques; c'est à dire que seules les combinaisons suivantes produisent le bon résultat :
- OK
- OK | Cancel
- Yes | No
- Yes | No | Cancel

Pour pouvoir customiser votre message box il vous faut créer des styles aux noms très précis :

- BorderStyle pour customiser la bordure
- CancelButtonStyle pour customiser le bouton Cancel
- CaptionBarGridStyle pour customiser la grille qui contiendra le titre de la fenêtre (en partant du principe que WindowStyle vaut None)
- CaptionTextBlockStyle pour customiser le textblock qui contient le titre de la fenêtre.
- IconStyle pour customiser l'affichage des icônes (error, warning, ...)
- MainGridStyle pour customiser l'ensemble de la boite.
- MessageBoxWindowStyle pour customiser la fenêtre
- MessageTextStyle pour customiser l'affichage du message.
- NoButtonStyle pour customiser le bouton No.
- OkButtonStyle pour customiser le bouton OK.
- StackPanelStyle pour customiser le stack panel.
- YesButtonStyle pour customiser le bouton Yes.

J'ai décidé de pouvoir customiser chaque bouton d'où le nombre conséquent de *ButtonStyle.

6 petits exemples de style à disposition.

Il y'a aussi un wrapper du FolderBrowserDialog pour qu'il soit fonctionnel à WPF. (necessite System.Windows.Forms)

Conclusion :


Pour le moment la message apparaît obligatoirement au centre de l'écran.
La prochaine version permettra une meilleure stylisation de la boite de message et l'apparition en fonction de la position du propriétaire de la boite.

Et un folder browser full wpf.

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.