在c#中更改menuitem附近箭头的颜色

时间:2014-10-28 09:57:24

标签: c# winforms menuitem

我有一个包含很多菜单项的应用程序。我已将menuitem的背景更改为深灰色,将文本更改为白色,但文本旁边的箭头仍为黑色。我想将此箭头的颜色更改为白色。

我在本文件中找到了exlanation:

MenuItem.OwnerDraw Property

和stackoverflow上的类似问题:

Question on stackoverflow

可以更轻松地更改菜单项旁边的箭头颜色吗? (这是允许您显示子菜单的箭头)。我的意思是使用像ProfessionalColorTable这样的东西。

1 个答案:

答案 0 :(得分:3)

very good answer的灵感来自@Hans Passantenter image description here 为表单加载或构造函数上的菜单条提供自定义渲染器,如:

this.menuStrip.Renderer = new WhiteArrowRenderer();

并覆盖箭头画:

public class WhiteArrowRenderer : ToolStripProfessionalRenderer { 
    protected override void OnRenderArrow (ToolStripArrowRenderEventArgs e) { 
        var tsMenuItem = e.Item as ToolStripMenuItem;
        if (tsMenuItem != null)
            e.ArrowColor = Color.White;
        base.OnRenderArrow(e);
    }
}