【问题标题】:Change control's Background based on the Windows theme color wpf根据 Windows 主题颜色 wpf 更改控件的背景
【发布时间】:2012-04-29 11:27:06
【问题描述】:

在我的应用程序中,我有一个控件,其背景是根据用户输入设置的,代码如下:

m_ToolBar.Background = (m_IToolbar.UseBackColor) ?
new SolidColorBrush(m_IToolbar.BackColor): m_DefaultWindowsBrush;

其中 m_IToolbar.UseBackColor 是一个布尔值,是否更新颜色,如果没有,则恢复为我在初始化方法中硬编码的默认窗口颜色。

有没有办法获得除硬编码以外的默认窗口颜色(如果我更改窗口主题颜色,则会有进一步的问题)。

【问题讨论】:

    标签: c# wpf colors


    【解决方案1】:

    您可以使用SystemColors Class。特别是SystemColors.ControlBrush 属性

    从上面的链接:

    WPF 公开了组成当前 Windows 系统主题的一组颜色。这些在 SystemColors 类中作为颜色、画笔和相应的 ResourceKeys 可用(用于绑定这些颜色更改的动态通知,例如,如果用户切换 Windows 主题)。

    【讨论】:

    • m_ToolBar.SetResourceReference(BackgroundProperty, SystemColors.MenuBrushKey);
    • 感谢@Mark Hall,答案很有帮助。
    猜你喜欢
    • 2011-11-22
    • 2023-04-05
    • 2011-10-05
    • 1970-01-01
    • 2013-12-18
    • 2020-03-27
    • 2010-11-19
    • 1970-01-01
    • 2013-10-24
    相关资源
    最近更新 更多