C# 重新命名菜单

C# 重新命名菜单,c#,winforms,colors,menustrip,C#,Winforms,Colors,Menustrip,我有一个菜单,我想改变它的颜色。到目前为止,我有以下代码: public class TestColorTable : ProfessionalColorTable { public override Color MenuItemSelected { get{ return Color.LightGray; } // Don't mind the colors... } public override Color MenuItemBorder

我有一个菜单,我想改变它的颜色。到目前为止,我有以下代码:

public class TestColorTable : ProfessionalColorTable
{
    public override Color MenuItemSelected
    {
        get{ return Color.LightGray; } // Don't mind the colors...
    }

    public override Color MenuItemBorder
    {
        get { return Color.LightGray; }
    }

    public override Color MenuItemSelectedGradientBegin
    {
        get { return Color.LightGray; }
    }

    public override Color MenuItemSelectedGradientEnd
    {
        get { return Color.LightGray; }
    }

    public override Color MenuItemPressedGradientBegin
    {
        get { return Color.DimGray; }
    }

    public override Color MenuItemPressedGradientEnd
    {
        get { return Color.DimGray; }
    }

    public override Color MenuBorder
    {
        get { return Color.LightGray; }
    }
}
通过这段代码和设计器,我成功地更改了MenuStrip中几乎每个元素的颜色。差不多

结果如下:

如您所见,有两个问题:1)两个分隔符和2)子菜单周围的白色细边框

关于如何改变我菜单上这两部分的颜色有什么想法吗

  • 对于分隔符颜色,请尝试重写类的and或属性

  • 至于子菜单周围的白色细边框…,其实它不是边框。它是(子菜单)背景本身。尝试重写类的属性以更改其颜色

  • 例如:

    public class TestColorTable : ProfessionalColorTable
    {
      ...
      public override Color SeparatorDark
      {
        get { return Color.DimGray; }
      }
    
      public override Color ToolStripDropDownBackground
      {
        get { return Color.DimGray; }
      }
      ...
    }
    

    很好,除了一件事:
    SeparatorDark
    实际上改变了分隔符,但它使行本身不再可见。有没有办法分别改变线条的颜色和背景的颜色?事实上,没关系。我使用了
    分隔符或指示灯
    ,该行在分隔符中不可见。