【问题标题】:(C#) How to make a dark mode theme in windows forms (separate form as select theme menu)(C#) 如何在 windows 窗体中制作暗模式主题(单独的窗体作为选择主题菜单)
【发布时间】:2020-04-10 17:19:50
【问题描述】:

我想知道如何编写一个深色主题单选按钮,让我的整个 C# 窗口都变暗(包括菜单等)

我制作了一个单独的设置表单,我希望为主题设置单选按钮,以更改整个程序中的主题,而不仅仅是设置菜单。我正在做一个文本编辑器。

【问题讨论】:

  • (我找不到像我在网上描述的那样工作的东西)
  • 这对于堆栈溢出来说太宽泛了。在网上或书中查找教程,试一试,如果遇到特定问题,请回来!
  • 我没有在网上找到任何我想要的东西,我也没有任何编码书籍。
  • 不到一分钟的搜索"c# how to create a theme for a winforms application" 出现以下结果:Apply your own theme to a Windows forms application, Implementing your own color theme, How to create a theme option for controls in windows form in C#
  • @HolzkopfBude:当单选按钮更改其值时,您需要为整个表单编写代码。您可以通过搜索“winforms ui c#”获取有关深色和浅色模式的信息以及 YouTube 上的许多有用视频

标签: c# winforms


【解决方案1】:
  • 第 1 步:确定您希望如何存储配色方案并基于它创建一个类。
  • 第 2 步:创建一个更改容器内每个 UI 组件颜色的方法,如下所示:
public void ChangeTheme(ColorScheme scheme, Control.ControlCollection container)
{
    foreach (Control component in container)
    {
        if (component is Panel)
        {
            ChangeTheme(scheme, component.Controls);
            component.BackColor = scheme.PanelBG;
            component.ForeColor = scheme.PanelFG;
        }
        else if (component is Button)
        {
            component.BackColor = scheme.ButtonBG;
            component.ForeColor = scheme.ButtonFG;
        }
        else if (component is TextBox)
        {
            component.BackColor = scheme.TextBoxBG;
            component.ForeColor = scheme.TextBoxFG;
        }
        ...
    }
}
  • 第 3 步:每当您在其组件上打开新表单时调用该方法(并确保在该方法完成之前由于显而易见的原因该表单不可见)或每当您更改主题时。

【讨论】:

    猜你喜欢
    • 2011-01-30
    • 2010-12-30
    • 1970-01-01
    • 2010-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-12
    • 1970-01-01
    相关资源
    最近更新 更多