Dynamiczna zmiana stylu XAML w programie Code Behind, aby elementy sterujące stosujące ten styl odzwierciedlały zmianę

Chcę móc ustawić właściwości stylu (i wartości) z pliku .cs w moim oknie WPF.

Mój problem polega na tym, że mam 30 prostokątów, z których wszystkie chcę mieć ten sam styl (i nie chcę ich aktualizować indywidualnie). Chciałbym, aby wszyscy ustawili (w pliku xaml) ten sam styl, a następnie zaktualizowali styl, aby wyglądał tak, jak bym chciał.

Powiedz, że ustawiłemStyle = "key1" w Xaml dla każdego prostokąta. Następnie chcę móc później zmodyfikować „klucz1”, aby wszystkie prostokąty odzwierciedlały tę zmianę.

PróbowałemApp.xaml

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

W MainwWindows.xaml

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

Za kodem

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

Uaktualnia to styl, ale nie aktualizuje prostokątów.

czy to możliwe? Czy ktoś wie jak to zrobić? (Przykład byłby bardzo mile widziany).

questionAnswers(2)

yourAnswerToTheQuestion