Changer les styles lors de l'exécution dans WPF
Je suis en train de permettre à l'utilisateur de personnaliser les éléments dans une application WPF. Ce que je suis en train de réaliser est, si j'ai une zone de liste qui spécifie tous les éléments de formulaire (TextBox, label, etc.) l'utilisateur peut choisir un élément de formulaire, et de définir le style de la propriété dire Étiquette de premier plan devrait être en orange, où, comme pour la zone de texte de premier plan devrait être en noir et ainsi de suite. Et que par ce style je suis a l'intention d'appliquer toutes les zones de texte devrait ressembler.
Je ne suis pas capable d'aller trouver un moyen pour y parvenir. J'ai essayé un exemple où plusieurs styles prédéfinis peuvent être téléchargés à l'exécution. Alors maintenant, je voudrais trouver une façon de changer la propriété des différents éléments lors de l'exécution.
UPDATE:
J'ai essayé de créer un nouveau style dans le code derrière.
XAML
<Label Content="SAMPLE" Style="{DynamicResource Style1}" x:Name="label1" />
<Button Content="Button" Click="Button_Click" />
et dans le code derrière c'est à dire sur le clic du Bouton, j'ai essayé ceci:
Style style = new Style { TargetType = typeof(Label) };
style.Setters.Add(new Setter(Control.ForegroundProperty, Brushes.Black));
Application.Current.Resources["Style1"] = style;
Mais il n'est pas mis à jour.
Grâce.
source d'informationauteur ds345
Vous devez vous connecter pour publier un commentaire.
Vous avez à faire assurez-vous que les styles sont dans le fichier
App.xaml
:Code derrière:
Si le
Style
est dans la ressource deWindow
(Window.Resources
), alors vous avez besoin d'écrirethis
ou le nom de laWindow
:Ainsi, vous pouvez changer la
Style
de cette façon: prendre un style existant et l'utilisation de l'élément. Exemple:Code derrière:
Avez-vous essayé d'utiliser Dictionnaires de Ressources
Dictionnaire De Ressources
XAML pour le contrôle
Code à changer de style au moment de l'exécution
Cette volonté de fusionner vos nouveaux styles avec ceux déjà existants, et le changement sera automatiquement répercuté sur tous les contrôles liés à ces styles.
il a travaillé pour moi comme un charme:
Xaml:
c#: