Динамическое изменение стиля 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>
Это обновляет стиль, но не обновляет прямоугольники.
Это возможно? Кто-нибудь знает как это сделать? (Пример будет принята с благодарностью).