我想用ProfessionalColorTable改变我的MenuStrip的颜色,但是我不能改变我的箭头的颜色...... 我使用ColorTable搜索一种改变我的MenuStrip样式的方法(因为我认为有更多选项)以及使用ToolStripProfessionalRenderer类的箭头颜色。
到目前为止,这是我的代码......
public class ArrowRenderer : ToolStripProfessionalRenderer
{
protected override void OnRenderArrow(ToolStripArrowRenderEventArgs e)
{
var tsMenuItem = e.Item as ToolStripMenuItem;
if (tsMenuItem != null)
e.ArrowColor = Color.White;
base.OnRenderArrow(e);
}
}
AND
public class ColorTableMenu : ProfessionalColorTable
{
public ColorTableMenu()
{
base.UseSystemColors = false;
}
Color color = Color.FromArgb(31, 77, 120);
public override Color MenuItemSelected
{
get { return color; }
}
public override Color MenuItemBorder
{
get { return color; }
}
public override Color MenuItemSelectedGradientBegin
{
get { return color; }
}
...
}
所以设置渲染器的唯一方法是
menuStrip1.Renderer = new ArrowRenderer();
OR
menuStrip1.Renderer = new ToolStripProfessionalRenderer(new ColorTableMenu);
但不能同时:(
希望你能帮助我,谢谢!
答案 0 :(得分:1)
确定找到了......
0xF0