在不丢失背景的情况下禁用ToolStripMenuItem高亮显示

时间:2019-04-18 13:19:36

标签: c# background-image menustrip toolstripmenu

所以我有一个MenuStrip和几个ToolStripMenuItem。我的ToolStripMenuItem组件中有两个具有背景图像(电池图标和关机图标)。

现在,我要为设置背景的MenuStrip元素禁用默认的ToolStripMenuItem鼠标悬停效果(背景为蓝色)。为此,我重写了OnRenderMenuItemBackground事件实现,如下所示:

internal class NoHighlightRenderer : ToolStripProfessionalRenderer
    {
        protected override void OnRenderMenuItemBackground(ToolStripItemRenderEventArgs e)
        {
            if (e.Item.OwnerItem != null)
            {
                base.OnRenderMenuItemBackground(e);
            }
        }
    }

并为我的MenuStrip使用此自定义渲染器,如下所示:

myMenuStrip.Renderer = new NoHighlightRenderer();

这对于没有背景图像的元素很好用。对于设置了背景的图片,背景图片将不会显示。

我希望背景图像可见,该怎么做?

0 个答案:

没有答案