当前位置:  开发笔记 > 编程语言 > 正文

如何以编程方式将WPF控件的颜色设置为系统颜色,以便更新颜色方案更改?

如何解决《如何以编程方式将WPF控件的颜色设置为系统颜色,以便更新颜色方案更改?》经验,为你挑选了3个好方法。

我怎么能在WPF的代码隐藏中做到这一点?


Csupor Jenő.. 14

我刚刚找到一个丑陋的解决方案:

grid1.SetResourceReference(
    Control.BackgroundProperty,
    SystemColors.DesktopBrushKey);

我希望有人会发布一个更好的(我想看看像grid1.Background = BackgroundBrush,因为SetResourceReference的语法是从Windows Forms向后退一步).



1> Csupor Jenő..:

我刚刚找到一个丑陋的解决方案:

grid1.SetResourceReference(
    Control.BackgroundProperty,
    SystemColors.DesktopBrushKey);

我希望有人会发布一个更好的(我想看看像grid1.Background = BackgroundBrush,因为SetResourceReference的语法是从Windows Forms向后退一步).



2> orcun..:

扩展方法可能有帮助:

public static class FrameworkElementExtensions
{
    // usage xPanel.SetBackground(SystemColors.DesktopBrushKey);
    public static void SetBackground(this Panel panel, ResourceKey key)
    {
        panel.SetResourceReference(Panel.BackgroundProperty, key);
    }

    // usage xControl.SetBackground(SystemColors.DesktopBrushKey);
    public static void SetBackground(this Control control, ResourceKey key)
    {
        control.SetResourceReference(Control.BackgroundProperty, key);
    }
}



3> jt000..:

这必须已添加到WPF的更高版本,因为它最初发布是因为您的原始代码适用于我(我正在使用WPF 4.5)

推荐阅读
360691894_8a5c48
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有