我有一个MenuStrip,我想改变它的颜色。到目前为止,我有这段代码:
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)子菜单周围的白色边框。
有关如何更改MenuStrip这两部分颜色的任何想法吗?
答案 0 :(得分:2)
对于分隔符颜色,请尝试覆盖SeparatorDark
类的SeparatorLight
和/或ProfessionalColorTable
属性。
至于子菜单周围的薄白边......嗯,它实际上不是边界。这是ToolStripDropDown
(子菜单)背景本身。尝试覆盖ToolStripDropDownBackground
类的ProfessionalColorTable
属性以更改其颜色。
示例:
public class TestColorTable : ProfessionalColorTable
{
...
public override Color SeparatorDark
{
get { return Color.DimGray; }
}
public override Color ToolStripDropDownBackground
{
get { return Color.DimGray; }
}
...
}