2010-10-02 5 views
1

J'ai une application WPF, et je voudrais modifier la couleur d'arrière-plan de l'interface utilisateur en fonction de la sélection de l'utilisateur lors de l'exécution.Contrôle des tags XAML à partir du code C#

Maintenant, je veux créer un bouton qui change la couleur à chaque fois que son cliquée, donc ce bouton doit changer une valeur des balises XAML

S'il vous plaît, aidez-moi à le faire, je bien besoin Merci

Répondre

3

Thomas a donné un exemple de ce que vous pourriez faire. Une autre option consisterait à lier la couleur d'arrière-plan à une propriété de votre contexte de données (probablement le ViewModel si vous utilisez MVVM) et à faire en sorte que le bouton change cette propriété - éventuellement indirectement via une commande.

Ce ne sont que des approches différentes - la définition directe de la couleur de fond est certainement plus simple que la liaison, mais elle peut être moins facilement testable.

4

Pour faire un rouge de contrôle de code:

yourControl.Background = Brushes.Red; 
3

Une autre option consiste à lier la couleur d'arrière-plan à une propriété de votre DataContext et à mettre à jour uniquement la valeur de la propriété lorsque vous cliquez sur le bouton. De cette façon, vous gardez votre logique et vos responsabilités d'affichage séparées.

0

Pour le dire simplement. Il n'y a pas de différence entre XAML et C#. À la fin, il produit tous les deux le même code exécutable. Pour changer de propriété sur l'interface graphique, vous devez soit nommer votre contrôle via la propriété x: Name, puis définir votre propriété dans le fichier de code d'arrière-plan. Ou vous pouvez DataBind votre propriété à un champ de support, de préférence en utilisant le modèle MVVM.

Mais vous devez d'abord comprendre comment fonctionne WPF (ESPECIALY DataBinding) avant de passer à des sujets plus avancés comme MVVM.

Questions connexes