Fenêtre WPF sans barre de titre et redimensionnables, et autres fonctionnalités

Présentation
En WPF, avec une fenêtre de base, il n'est pas possible de faire les choses suivantes facilement :
- Etre sans barre de titre redimensionnable
- gèrer directement les commandes "SystemCommands" : en effet, les commandes systèmes telles que "SystemCommands.CloseWindowCommand" existent mais ne sont pas gérées directement par WPF.
- Etre parent d'une fenêtre système non disponible sur WPF telle que "FolderBrowserDialog" par exemple.

Le code source que je met à disposition répond à toutes ces problématiques avec la classe "BaseWindow". Pour avoir accès à toutes ces nouvelles possibilités, il suffit d'indiquer que votre fenêtre WPF hérite de ma classe "BaseWindow" :
- la classe BaseWindow gère le redimensionnement lorsque la fenêtre à un style window "None" (c'est à dire sans bordure et sans barre de titre). Il est alors possible entre autres de customiser le look de la fenêtre en enlevant complétement la barre de titre et les bordures tout en laissant la possibilité qu'elle soit redimensionnable!
- la classe BaseWindow gère toute seule la possibilité d'avoir des boutons à commande système. Lorsque vous rajoutez vos boutons, vous pouvez par exemple associer un bouton à la commande "SystemCommands.CloseWindow" et la fermeture à partir de ce bouton est gérée automatiquement; vous pouvez même personnaliser l'interdiction à l'utilisateur de fermer la fenêtre tout en laissant la possibilité au programme de le faire.
- La classe BaseWindow implémente l'interface "System.Windows.Forms.IWin32Window" ce qui lui permet d'être utilisée comme fenêtre parent pour un "FolderBrowserDialog" par exemple.

Le code que je fournis montre donc aussi les exemples d'utilisation.


Mise à jour di 05/02/2015 : diverses petites corrections...
Téléchargement
Compatibilité
Windows
0  0 
Téléchargé 276 fois Voir les 3 commentaires
Détails
Avatar de Ph_Gr
Membre expérimenté
Voir tous les téléchargements de l'auteur
Licence : Libre
Date de mise en ligne : 5 février 2015




Avatar de NicoLag NicoLag - Futur Membre du Club https://www.developpez.com
le 04/06/2014 à 12:47
Bonjour,
Merci pour cette source, c'est exactement ce que je voulais!! Je débute en WPF et j'aurais une petite question.
Quand j'ouvre le projet, j'ai une erreur : "Le nom "BaseWindow" n'existe pas dans l'espace de noms "clr-namespace: PhGrPatterns"."
J'arrive à lancer l'application, mais dans la conception il me dit que le balisage est non valide et la fenêtre enfant n'hérite pas de la classe.
Si quelqu'un peut m'aider...
En tout cas merci pour ce beau travail!
Nico
Avatar de NicoLag NicoLag - Futur Membre du Club https://www.developpez.com
le 07/06/2014 à 18:54
Personne n'a d'idée??
Avatar de Ph_Gr Ph_Gr - Membre expérimenté https://www.developpez.com
le 22/10/2014 à 15:26
Bonjour,
Je n'avais pas vu que quelqu'un avait posté ici, le tableau de bord ne m'avait pas prévenu...

Il faut compiler au moins 1 fois le projet pour faire disparaître les erreurs.
Developpez.com décline toute responsabilité quant à l'utilisation des différents éléments téléchargés.
Responsable bénévole de la rubrique Microsoft DotNET : Hinault Romaric -