C# 如何在winforms中更改菜单项的背景色?
你好 这幅图概括了这一点: 遇到一些问题,无法使用搜索栏找到正确答案。我曾经尝试过使用自定义渲染,但当我对菜单条使用系统渲染时,它总是仅用于专业渲染 编辑:发现了我自己C# 如何在winforms中更改菜单项的背景色?,c#,winforms,colors,background,menustrip,C#,Winforms,Colors,Background,Menustrip,你好 这幅图概括了这一点: 遇到一些问题,无法使用搜索栏找到正确答案。我曾经尝试过使用自定义渲染,但当我对菜单条使用系统渲染时,它总是仅用于专业渲染 编辑:发现了我自己 public class CustomColorTable : ProfessionalColorTable { public override Color MenuItemSelected { get { return Color.FromArgb(51,153,255); } }
public class CustomColorTable : ProfessionalColorTable
{
public override Color MenuItemSelected
{
get { return Color.FromArgb(51,153,255); }
}
public override Color ToolStripDropDownBackground
{
get { return Color.FromArgb(83, 83, 83); }
}
public override Color ImageMarginGradientBegin
{
get { return Color.FromArgb(83, 83, 83); }
}
public override Color ImageMarginGradientEnd
{
get { return Color.FromArgb(83, 83, 83); }
}
public override Color ImageMarginGradientMiddle
{
get { return Color.FromArgb(83,83,83); }
}
public override Color MenuItemSelectedGradientBegin
{
get { return Color.FromArgb(51, 153, 255); }
}
public override Color MenuItemSelectedGradientEnd
{
get { return Color.FromArgb(51, 153, 255); }
}
public override Color MenuItemPressedGradientBegin
{
get { return Color.FromArgb(51, 153, 255); }
}
public override Color MenuItemPressedGradientMiddle
{
get { return Color.FromArgb(51, 153, 255); }
}
public override Color MenuItemPressedGradientEnd
{
get { return Color.FromArgb(51, 153, 255); }
}
public override Color MenuItemBorder
{
get { return Color.FromArgb(51, 153, 255); }
}
}
然后只需将新的颜色表用于:
MS1.Renderer = new ToolStripProfessionalRenderer(new CustomColorTable()); ;
可能重复您是否检查了本教程?我已经按照您的示例使用CustomColorTable通过溢出菜单控制ToolStrip上的大多数颜色,但由于某些原因,当按钮显示在溢出菜单中时,它会忽略我的自定义表。你知道为什么吗?