当前位置: 首页 > 编程语言 > C#

在Code Behind中动态更改XAML样式,以便应用该样式的控件也反映了更改分享

时间:2023-04-10 23:31:40 C#

C#学习教程:在代码隐藏中动态更改XAML样式,以便应用该样式的控件也反映更改样式属性(和值)在WPF窗口的.cs文件中设置。我的问题是,如果我有30个矩形,我希望所有矩形都具有相同的样式(我不想单独更新所有矩形)。我想将它们全部(在xaml文件中)设置为相同的样式,然后更新样式以查看我是否喜欢它们。假设我在每个矩形的Xaml中设置了Style="key1"。然后我希望稍后能够修改“key1”,以便所有矩形都反映此更改。我在privatevoidButton_Click(objectsender,RoutedEventArgse){Stylestyle=Application.Current.Resources["key1"]asStyle;后面的代码中尝试了App.xamlinMainwWindows.xamlstyle.Setters.Add(newSetter(Rectangle.VisibilityProperty,Visibility.Collapsed));}这会更新样式但不会更新矩形。是否可以?有谁知道如何做到这一点?(非常感谢一个例子)。您需要使用DynamicResource以便它可以在运行时更改。您还想用新样式替换样式,而不是尝试修改现有样式。这有效:Stylestyle=newStyle{TargetType=typeof(Rectangle)};style.Setters.Add(newSetter(Shape.FillProperty,Brushes.Red));style.Setters.Add(newSetter(UIElement.VisibilityProperty,Visibility.Collapsed));Application.Current.Resources["key1"]=样式;还值得一提的是,样式一旦使用就会被密封,因此无法更改。这就是为什么样式应该被另一个实例替换而不是更新的原因。以上就是C#学习教程:在CodeBehind中动态更改XAML样式,使应用该样式的控件也反映出更改分享的全部内容。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注。—本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: