如何更改MenuStrip的外观

AnD*_*3yy 5 c# appearance items border menustrip

我加MenuStrip在我的应用程序,并添加上ManagerRenderModeRender Mode.问题在于外观,看起来很内脏.看看那两张照片,我想改变透明的子菜单的白色边框,那个看起来灰色的蓝色矩形菜单和深灰色的子菜单(和他的边框是深蓝色)和边框白色菜单何时被选中.我怎么能这样做?

BackColor是:36; 36; 36ForeColorLightGray.

在此输入图像描述

在此输入图像描述

我设法更改了蓝色矩形,选中选项时的白色矩形,选择子菜单选项时的蓝色矩形,但我不知道如何更改white border,请帮助..

这是迄今为止的代码......

        Color culoare = Color.FromArgb(20, 20, 20);
        Color culoare1 = Color.FromArgb(36, 36, 36);

        public override Color MenuItemSelected
        {
            get { return culoare; }
        }

        public override Color MenuItemBorder
        {
            get { return culoare; }
        }

        public override Color MenuItemSelectedGradientBegin
        { 
            get { return culoare; } 
        }

        public override Color MenuItemSelectedGradientEnd
        { 
            get { return culoare; } 
        }

        public override Color MenuItemPressedGradientBegin
        { 
            get { return culoare; }
        }

        public override Color MenuItemPressedGradientEnd
        {
            get { return culoare; }
        }

        public override Color MenuBorder
        {
            get { return culoare; }
        }
Run Code Online (Sandbox Code Playgroud)

Pon*_*dum 18

您可以通过创建自己的ColorTable来实现此目的,并覆盖您希望更改颜色的属性:

public  class TestColorTable : ProfessionalColorTable
{
    public override Color MenuItemSelected
    {
        get { return Color.Red; }
    }

    public override Color MenuBorder  //added for changing the menu border
    {
        get { return Color.Green; }
    }

}
Run Code Online (Sandbox Code Playgroud)

你会像这样使用它:

private void Form1_Load(object sender, EventArgs e)
{
    menuStrip1.Renderer = new ToolStripProfessionalRenderer(new TestColorTable());
}
Run Code Online (Sandbox Code Playgroud)