¿Hay alguna manera de cambiar (y aplicar) un estilo dinámicamente en WPF?Cambiar un estilo dinámicamente en WPF
Decir que tengo el estilo declarada 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 momento, necesito cambio el color
Pink
, a, digamosGreen
, y todas las líneas con estiloMyLineStyleKey
se convirtió en verde . Una línea es rosada cuando se lanza, y azul cuando se selecciona ... Ahora, necesitaba cambiar la propiedad no seleccionada (rosa a verde) ..., así que esto no es solo configurarlo en otro color, el disparador (selección> azul) ya no funcionará ... ¿Es eso posible? ¿Cómo?¿Es posible vincular al color rosa en el estilo, por ejemplo, a un fondo de botón, que reflejará el color de estilo utilizado actualmente?
EDIT:
Para Probé:
Style s = (Style)this.Resources["MyLineStyleKey"];
(s.Setters[0] as Setter).Value = background;
(s.Setters[1] as Setter).Value = background;
pero una excepción ocurrió:
Después de un 'SetterBase' está en uso (sellado), se no puede ser modificado
Eso se puede hacer de forma dinámica. – Wernight