我读了一些关于人们如何定制菜单颜色和渐变的文章。
我要做的是删除渐变,以便menustrip与表单的其他部分是相同的颜色,对我来说,这是创建新winforms项目时使用的默认设置。我试着将RenderMode
改为'system',它工作起来有点像,但是在我构建和运行它时,它会留下一条白色的线,即MenuStrip的长度。我需要画画吗?还是有更简单的方法?
最佳答案
这基本上和这个问题一样one
答案引用了这个Microsoft bug post
从2005年开始,这似乎一直是个问题。尽管评论说这是一个无法修复的MS错误,但有一个解决方法涉及实现您自己的渲染器:
public class MySR : ToolStripSystemRenderer
{
public MySR()
{
}
protected override void OnRenderToolStripBorder(ToolStripRenderEventArgs e)
{
//base.OnRenderToolStripBorder(e);
}
}
然后,您只需将MenuStrip的呈现程序设置为刚刚实现的呈现程序:
menustrip1.Renderer = new MySR();
我刚试过,看起来效果不错。