Téléchargé 28 fois
Vote des utilisateurs
0
0
Détails
Licence : Libre
Mise en ligne le 5 février 2015
Plate-forme :
Windows
Langue : Français
Référencé dans
Navigation
Fenêtre WPF sans barre de titre et redimensionnables, et autres fonctionnalités
Fenêtre WPF sans barre de titre et redimensionnables, et autres fonctionnalités
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...
- 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...
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
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
Personne n'a d'idée??
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.
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.