Динамическое изменение стиля XAML в Code Behind, чтобы элементы управления, применяющие этот стиль, также отражали изменение

Я хочу иметь возможность установить свойства стиля (и значения) из файла .cs в моем окне WPF.

Моя проблема в том, что если у меня 30 прямоугольников, каждый из которых должен иметь одинаковый стиль (и я не хочу обновлять их все по отдельности). Я хотел бы, чтобы все они были установлены (в файле xaml) в один и тот же стиль, а затем обновили стиль так, чтобы он выглядел так, как мне нравится.

Скажи, что я установилStyle = "key1" в Xaml для каждого прямоугольника. Затем я хочу изменить & quot; key1 & quot; позже, так что все прямоугольники будут отражать это изменение.

Я пробовал вApp.xaml

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

В MainwWindows.xaml

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

В коде позади

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

Это обновляет стиль, но не обновляет прямоугольники.

Это возможно? Кто-нибудь знает как это сделать? (Пример будет принята с благодарностью).

Ответы на вопрос(2)

Ваш ответ на вопрос