Toolstrip删除左边框

问题描述 投票:0回答:1

目前,这是我的上下文菜单栏/工具栏的图像:

enter image description here

[我正在尝试删除左侧的白线。我该怎么办?

代码:

    public class ArrowRenderer : ToolStripProfessionalRenderer
{
    public ArrowRenderer() : base(new LeftMenuColorTable())
    {

    }
    protected override void OnRenderItemText(ToolStripItemTextRenderEventArgs e)
    {
        var tsMenuItem = e.Item as ToolStripMenuItem;
        if (tsMenuItem != null)
            e.TextColor = Color.White;
        base.OnRenderItemText(e);
    }

    protected override void OnRenderArrow(ToolStripArrowRenderEventArgs e)
    {
        var tsMenuItem = e.Item as ToolStripMenuItem;
        if (tsMenuItem != null)
            e.ArrowColor = Color.White;
        base.OnRenderArrow(e);
    }
    protected override void OnRenderMenuItemBackground(ToolStripItemRenderEventArgs e)
    {
        var tsMenuItem = e.Item as ToolStripMenuItem;
        if (tsMenuItem != null)
            e.Item.BackColor = Color.Black;
        base.OnRenderMenuItemBackground(e);
    }
    //protected override void OnRenderToolStripBorder(ToolStripRenderEventArgs e)
    //{

    //}
}
public class LeftMenuColorTable : ProfessionalColorTable
{
    public override Color MenuItemSelected
    {
        // when the menu is selected
        get { return ColorTranslator.FromHtml("#494f52"); }
    }
    public override Color MenuBorder
    {
        get
        {
            return Color.Black;
        }
    }
    public override Color MenuItemBorder
    {
        get
        {
            return Color.Black;
        }
    }
    public override Color ToolStripDropDownBackground
    {
        get
        {
            return Color.Black;
        }
    }

}

 internal void SetTrayMenu()
{
    if (m_menu != null && notifyIcon.ContextMenuStrip != null)
    {
        notifyIcon.ContextMenuStrip.Refresh();
    }
    else
    {
        m_menu = new ContextMenuStrip
        {
            Renderer = new ArrowRenderer(),
            AllowTransparency = true,
            Opacity = 0.8,
            //ShowImageMargin = false,
        };
    }
}
c# winforms
1个回答
0
投票

解决方案:

将其添加到Renderer重写方法中:

        public override Color ImageMarginGradientBegin
        {
            get { return Color.Black; }
        }
        public override Color ImageMarginGradientMiddle
        {
            get { return Color.Black; }
        }
        public override Color ImageMarginGradientEnd
        {
            get { return Color.Black; }
        }
© www.soinside.com 2019 - 2024. All rights reserved.