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
<Application.Resources>
<Style x:Key="key1" TargetType="Rectangle">
<Setter Property="Fill" Value="Red"/>
</Style>
</Application.Resources>
No MainwWindows.xaml
<StackPanel>
<Rectangle Style="{StaticResource key1}" Height="200" Width="200" x:Name="rect1"/>
<Button Click="Button_Click" Content="Click"/>
</StackPanel>
No código atrás
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));
}
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).