Dynamisches Ändern des XAML-Stils in Code Behind, sodass Steuerelemente, die diesen Stil anwenden, auch die Änderung widerspiegeln

Ich möchte Stileigenschaften (und -werte) in der CS-Datei in meinem WPF-Fenster festlegen können.

Mein Problem ist, wenn ich 30 Rechtecke habe, von denen ich alle den gleichen Stil haben möchte (und nicht alle einzeln aktualisieren möchte). Ich möchte, dass sie alle (in der XAML-Datei) auf den gleichen Stil eingestellt sind und dann den Stil aktualisieren, damit er so aussieht, wie ich es möchte.

Sprich ich stelle das einStyle = "key1" in der Xaml für jedes Rechteck. Dann möchte ich in der Lage sein, "key1" später zu ändern, damit alle Rechtecke diese Änderung widerspiegeln.

Ich habe es versuchtApp.xaml

<code><Application.Resources>
    <Style x:Key="key1" TargetType="Rectangle">
        <Setter Property="Fill" Value="Red"/>
    </Style>
</Application.Resources>
</code>

In MainwWindows.xaml

<code><StackPanel>
    <Rectangle Style="{StaticResource key1}" Height="200" Width="200" x:Name="rect1"/>
    <Button Click="Button_Click" Content="Click"/>
</StackPanel>
</code>

Im Code dahinter

<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>

Dadurch wird der Stil aktualisiert, die Rechtecke werden jedoch nicht aktualisiert.

Ist das möglich? Weiß jemand, wie man das macht? (Ein Beispiel wäre sehr dankbar).

Antworten auf die Frage(2)

Ihre Antwort auf die Frage