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