IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Modification propriété background


Sujet :

C#

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2012
    Messages : 3
    Points : 4
    Points
    4
    Par défaut Modification propriété background
    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

  2. #2
    Membre émérite
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Points : 2 424
    Points
    2 424
    Par défaut
    bonjour

    pour changer la background d'une form; tu peux faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    _mainWindow.Background = New SolidColorBrush(Colors.Red)
    avec _mainWindow est ton Window (form).

    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 )
    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();
     
     
    	}
    }
    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
    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);
     
    	}
     
     
    }

  3. #3
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    436
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 436
    Points : 963
    Points
    963
    Par défaut
    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 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <Window x:Name="window2" Background="{Binding MyBackground}"> 
    ...
    </window>
    dans le code behind tu n'oublies pas dans le constructeur window2.DataContext = new Window2ViewModel(); ou alors this;

    Puis dans window1, tu fais :
    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>
    en n'oubliant pas encore de définir le data context de window 1 après le InitializeComponent() du constructeur.


    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

Discussions similaires

  1. [ASP 2.0]Modifs Propriété ascx Design time
    Par chnew dans le forum ASP.NET
    Réponses: 6
    Dernier message: 12/06/2007, 09h30
  2. Modification de la propriété background-color
    Par malves dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 13/09/2006, 20h23
  3. Réponses: 4
    Dernier message: 06/10/2005, 16h19
  4. [DEBUTANT][Javascript + CSS]Modification du background
    Par picomz dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 14/09/2005, 22h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo