我创建了一个继承ToolStripSystemRenderer的类,并添加了覆盖各种事件来按我想要的方式设置工具条的样式。但我似乎无法改变按钮的下拉菜单的背景,而无需更改工具条本身的背景颜色。
这是菜单的一个示例。我想改变那种系统颜色。
我的渲染器类目前非常简单。
public class AvertToolStripRenderer : ToolStripSystemRenderer
{
protected override void OnRenderToolStripBorder(ToolStripRenderEventArgs e)
{
//base.OnRenderToolStripBorder(e);
}
protected override void OnRenderItemText(ToolStripItemTextRenderEventArgs e)
{
e.TextColor = Color.Black;
base.OnRenderItemText(e);
}
protected override void OnRenderArrow(ToolStripArrowRenderEventArgs e)
{
e.ArrowColor = Color.White;
base.OnRenderArrow(e);
}
}
答案 0 :(得分:3)
您需要设置工具条的渲染器(以防您忘记此细节):
YourToolstrip.Renderer = new AvertToolStripRenderer();
您的自定义渲染器类的下一步:
public class AvertToolStripRenderer : ToolStripProfessionalRenderer
{
//rest of your implementation...
protected override void OnRenderToolStripBackground(ToolStripRenderEventArgs e)
{
ToolStripDropDown dr = e.ToolStrip as ToolStripDropDown;
if (dr != null)
{
e.Graphics.FillRectangle(Brushes.Beige, e.AffectedBounds);
}
}
}