Bonjour, je conçois une application depuis déjà quelques semaines. Je m'étais fait imposé un thème de couleur (teintes de verts) au début du projet. Cependant, je viens de me faire demander de faire deux thèmes différents (teintes de vert ou teintes de doré) selon un choix de l'utilisateur. Je me demandais s'il y avait une façon "short and sweet" de changer les couleurs de tous les contrôles de mon application. Voici la solution à laquelle j'avais pensé :
Me créer un objet de couleurs :
Ensuite, créer une instance publique de cet objet dans une classe et faire une fonction qui modifie les couleurs. Dans le genre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 public class MyColors() { public Image bgImage; public Color color1; public Color color2; ....etc }
puis dans le Form_Load de chacune de mes fenêtres, associer tous mes contrôles à une couleur spécifique
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 public class GlobalClass() { public MyColors couleurs = new MyColors(); public void ChangeColors(int color) { if(color == 1) { couleurs.color1 = Color.Green; etc... } else { couleurs.color1 = Color.Gold; ....etc } } }Je crois qu'il est important de mentionner qu'en tout j'ai environ 5 couleurs différentes de contrôles ainsi qu'une dizaine d'images (pour des boutons, etc).
Code : Sélectionner tout - Visualiser dans une fenêtre à part txtTest.BackColor = GlobalClass.couleurs.color1;
Lorsque l'usager changerait la couleur (qui peut se faire seulement dans la page principale de l'application), je devrais démarrer une nouvelle instance de l'application et fermer celle en cours.
Est-ce que quelqu'un a une meilleure solution que celle que j'ai proposée ci-haut ? Votre aide serait grandement appréciée. Merci beaucoup !
Partager