Comment on fait pour modifier la propriété background(couleur) de la fenêtre principale en wpf à partir d'un bouton se trouvant dans une autre fenêtre wpf? Merci d'avance
Comment on fait pour modifier la propriété background(couleur) de la fenêtre principale en wpf à partir d'un bouton se trouvant dans une autre fenêtre wpf? Merci d'avance
bonjour
pour changer la background d'une form; tu peux faire
avec _mainWindow est ton Window (form).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 _mainWindow.Background = New SolidColorBrush(Colors.Red)
et pour le faire appartir d'une autre form il faut que le from qui contient le bouton doit avoir une instance de la from pour faire ça le peux te donner se code
mainwinodow (la form root ce lui qui démarre la premiere )
et la form deux celui qui contient le bouton
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 class MainWindow { private void Button1_Click(System.Object sender, System.Windows.RoutedEventArgs e) { Window1 win1 = new Window1(this); win1.ShowDialog(); } }
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
19
20
21 public class Window1 { private MainWindow _mainWindow; public Window1(MainWindow mainWindow) { InitializeComponent(); _mainWindow = mainWindow; } private void Button1_Click(System.Object sender, System.Windows.RoutedEventArgs e) { _mainWindow.Background = new SolidColorBrush(Colors.Red); } }
1 autre solution plus orienté MVVM :
créer une Dependency property sur le Window2 du genre MyBackground de type SolidColorBrush. Dans le xaml du Window2, tu fais un binding sur cette DP.
Ex :
dans le code behind tu n'oublies pas dans le constructeur window2.DataContext = new Window2ViewModel(); ou alors this;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <Window x:Name="window2" Background="{Binding MyBackground}"> ... </window>
Puis dans window1, tu fais :
en n'oubliant pas encore de définir le data context de window 1 après le InitializeComponent() du constructeur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part <window x:class="window1" xmlns:local="path de l'assembly courrant"> <local:Window2 MyBackground="{Binding MaCouleur}" /> </window>
Ps: normalement tu n'as même pas besoin de créer la dependency property puisque Window à déjà une DP Background que tu peux ré utiliser.
Edit : si tu veux modifier le background d'un popup depuis un autre popup, sur clic d'un bouton :
Dans window2 tu ajoutes un évènement qui prend en entrée une solidColorBrush que tu vas déclencher au clic. Ton mainPage qui appels window1 et window2, s'abonne à cet évènement : this.MyWindow2.EventChangementBackground += ChangerBackground;
et la méthode ChangerBackground(solidcolorbrush nouvelleCouleur) { window1.Background = nouvelleCouleur }
Cette méthode rejoint celle d' azstar
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager