Existe-t-il un moyen de modifier (et d'appliquer) un style de manière dynamique dans WPF?Modification dynamique d'un style dans WPF
Dire que j'ai le style déclaré en XAML:
<Style TargetType="local:MyLine"
x:Key="MyLineStyleKey" x:Name="MyLineStyleName">
<Setter Property="Fill" Value="Pink"/>
<Style.Triggers>
<Trigger Property="IsSelected" Value="true">
<Setter Property="Fill" Value="Blue" />
</Trigger>
</Style.Triggers>
</Style>
En un instant, je dois changement la couleur
Pink
, à, direGreen
, et toutes les lignes avec le styleMyLineStyleKey
est devenu vert . Une ligne est rose quand elle est libérée, et bleue quand elle est sélectionnée ... Maintenant, j'avais besoin de changer la propriété non sélectionnée (rose à vert) ..., donc ce n'est pas juste de le régler à une autre couleur, le déclencheur (sélection> Bleu) ne fonctionnera plus ... Est-ce possible? Comment?Est-ce possible à de lier à la couleur rose dans le style, disons, à un fond de bouton, qui reflétera la couleur de style actuellement utilisée?
EDIT:
Pour J'ai essayé:
Style s = (Style)this.Resources["MyLineStyleKey"];
(s.Setters[0] as Setter).Value = background;
(s.Setters[1] as Setter).Value = background;
, mais une exception est survenue lors:
Après un 'SetterBase' est en cours d'utilisation (étanche), il ne peut pas être modifié. Un style ne peut être modifié que lors de sa première utilisation.
Cela peut être fait de façon dynamique. – Wernight