首页 > 解决方案 > 如何在 C# 中更改菜单条所有部分的颜色

问题描述

请仔细看图片

如何更改下图中白色部分的颜色?

图片1

我用了 :

ToolStripManager - ProfessionalColorTable - ToolStripProfessionalRenderer

但它们没有用。

我希望我的菜单如下图所示。没有白色部分

图片2

我使用以下方法解决了这个问题,但没有帮助。

首先,我创建了类"MyProfessionalColors"并继承自"ProfessionalColorTable"

然后我覆盖所有与 MenuStrip 相关的属性。

class MyProfessionalColors : ProfessionalColorTable
{
    public override Color MenuStripGradientBegin
    {
        get
        {
            return Color.FromArgb(35, 35, 35);
        }
    }
    public override Color MenuStripGradientEnd
    {
        get
        {
            return Color.FromArgb(35, 35, 35);
        }
    }
    public override Color MenuItemPressedGradientBegin
    {
        get
        {
            return Color.FromArgb(20, 20, 20);
        }
    }
    public override Color MenuItemPressedGradientMiddle
    {
        get
        {
            return Color.FromArgb(20, 20, 20);
        }
    }
    public override Color MenuItemPressedGradientEnd
    {
        get
        {
            return Color.FromArgb(20, 20, 20);
        }
    }
    public override Color MenuBorder
    {
        get
        {
            return Color.FromArgb(20, 20, 20);
        }
    }
    public override Color MenuItemSelected
    {
        get
        {
            return Color.FromArgb(50, 50, 50);
        }
    }
    public override Color MenuItemSelectedGradientBegin
    {
        get
        {
            return Color.FromArgb(50, 50, 50);
        }
    }
    public override Color MenuItemSelectedGradientEnd
    {
        get
        {
            return Color.FromArgb(50, 50, 50);
        }
    }
    public override Color MenuItemBorder
    {
        get
        {
            return Color.FromArgb(35, 35, 35);
        }
    }
}

然后我用了

 ToolStripManager.Renderer = new ToolStripProfessionalRenderer
                        (new MyProfessionalColors());

但是部分控件没有改变颜色。

我怎样才能改变那部分?

我是否需要创建自定义控件并使用它?

标签: c#winformsmenustrip

解决方案


推荐阅读