如何更改MenuStrip的外观
我在我的应用程序中添加了一个MenuStrip
,并在Render Mode
添加了ManagerRenderMode
。 问题在于外观,看起来很内脏。 看看那两张照片,我想改变透明的子菜单的白色边框,那个看起来灰色的蓝色矩形菜单和深灰色的子菜单(和他的边框是深蓝色)和边框白色菜单何时被选中。 我怎么能这样做?
BackColor
是: 36; 36; 36
36; 36; 36
36; 36; 36
和ForeColor
是LightGray
。
我设法更改蓝色矩形,选择选项时的白色矩形,选择子菜单选项时的蓝色矩形,但我不知道如何更改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; } }
您可以通过创建自己的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; } } }
你会像这样使用它:
private void Form1_Load(object sender, EventArgs e) { menuStrip1.Renderer = new ToolStripProfessionalRenderer(new TestColorTable()); }
你的方法不正确。 您不使用forecolor / backcolor设置菜单和工具条的样式。
看看ToolStripProfessionalRenderer
关于如何使用它的示例
public class MyToolStripRenderer : ToolStripProfessionalRenderer { /* override styling/drawing here */ } MenuStrip strip = new MenuStrip(); strip.Renderer = new MyToolStripRenderer(); //this will set RenderMode to "Custom"
考虑在CodeProject上使用这个例子作为一些研究。
更好的是,VBForums有很多已经实现的(在通常的Luna,Office,Windows,Visual Studio样式中!)
如果你只是想要色彩……请使用Pondidum的答案! 它涉及较少的工作!