Alterar o estilo XAML dinamicamente no Code Behind para que os controles que aplicam esse estilo também reflitam a alteração
Eu quero ser capaz de definir propriedades de estilo (e valores) do arquivo. Cs na minha janela do WPF.
Meu problema é se eu tenho 30 retângulos, todos os quais eu quero ter o mesmo estilo (e eu não quero atualizar todos eles individualmente). Eu gostaria de tê-los todos definidos (no arquivo xaml) para o mesmo estilo e, em seguida, atualizar o estilo para olhar da maneira que eu gostaria.
Digamos que eu configure oStyle = "key1"
no Xaml para cada retângulo. Então, quero poder modificar "key1" mais tarde, para que todos os retângulos reflitam essa alteração.
Eu tenteiApp.xaml
<code><Application.Resources> <Style x:Key="key1" TargetType="Rectangle"> <Setter Property="Fill" Value="Red"/> </Style> </Application.Resources> </code>
No MainwWindows.xaml
<code><StackPanel> <Rectangle Style="{StaticResource key1}" Height="200" Width="200" x:Name="rect1"/> <Button Click="Button_Click" Content="Click"/> </StackPanel> </code>
No código atrás
<code>private void Button_Click(object sender, RoutedEventArgs e) { Style style = Application.Current.Resources["key1"] as Style; style.Setters.Add(new Setter(Rectangle.VisibilityProperty, Visibility.Collapsed)); } </code>
Isso atualiza o estilo, mas não atualiza os retângulos.
Isso é possível? Alguém sabe como fazer isso? (Um exemplo seria muito apreciado).