(C#) 如何在 windows 窗体中制作暗模式主题(单独的窗体作为选择主题菜单)

Hol*_*ude 3 c# winforms

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

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

WEN*_*DYN 10

  • 第 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;
        }
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)
  • 第 3 步:每当您在其组件上打开新表单时调用该方法(并且还要确保该表单在该方法完成之前不可见,原因很明显)或每当您更改主题时。