我读了一些关于人们如何定制菜单颜色和渐变的文章。
我要做的是删除渐变,以便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();

我刚试过,看起来效果不错。

08-15 22:32