【发布时间】:2012-02-05 20:26:09
【问题描述】:
在我的 WPF 应用程序中,我希望用户可以随意更改背景颜色。如何从一个窗口设置背景颜色,我可以将其设置为我的应用程序中的所有窗口?
我该如何管理?
【问题讨论】:
标签: c# wpf background-color
在我的 WPF 应用程序中,我希望用户可以随意更改背景颜色。如何从一个窗口设置背景颜色,我可以将其设置为我的应用程序中的所有窗口?
我该如何管理?
【问题讨论】:
标签: c# wpf background-color
您可以在所有窗口的背景中动态引用(使用DynamicResource)在Application.Resources 中定义的相同SolidColorBrush,如果然后用另一个画笔替换此资源,窗口将更新。
或者,您可以在某个位置(例如,在 App 类中的某些全局可访问的设置中)创建一个带有更改通知的 Brush 属性,您可以绑定到该属性。
【讨论】:
SolidColorBrush.Color是否可以修改,它确实有一个set访问器。我希望所有表单都应该明确无效,但为什么它不起作用?
SolidColorBrush 是freezable,一旦冻结就无法更改。
您没有说它是 Web 应用程序还是桌面应用程序,也没有说明您是否使用 MVVM 模式,但我建议您在应用程序的样式表中进行设置。然后在 XAML 中为每个“窗口”引用它。
【讨论】:
Window 创建的。