目前,这是我的上下文菜单栏/工具栏的图像:
[我正在尝试删除左侧的白线。我该怎么办?
代码:
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,
};
}
}
解决方案:
将其添加到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; }
}