'White bar' 是一个 MenuStripDropDown
'White bar' on MenuStripDropDown
我目前在 C# windows 表单应用程序上为 MenuStrip 设置了自定义渲染:
private class HeaderMenuRender : ProfessionalColorTable
{
public override Color MenuItemSelectedGradientBegin
{
get
{
return Color.Gray;
}
}
public override Color MenuItemSelectedGradientEnd
{
get
{
return Color.Gray;
}
}
public override Color MenuItemPressedGradientBegin
{
get
{
return Color.Gray;
}
}
public override Color MenuItemPressedGradientEnd
{
get
{
return Color.Gray;
}
}
public override Color MenuItemBorder
{
get
{
return Color.Gray;
}
}
public override Color MenuBorder
{
get
{
return Color.Gray;
}
}
}
然后将其应用于窗体上的现有 MenuStrip 控件以创建自定义呈现。
然而,当 运行 应用程序并从显示的菜单中进行选择时,尽管菜单选项的颜色正确,但仍有一个小 'White'(可以说是 'Control' colour) 横跨所选 MenuStrip 选项长度的栏(在下面的蓝色框中表示):
是否有特定的 属性 自定义渲染器我没有包括或者我缺少的东西正在设置 MenuStrip 所选项目的这个特定部分?我在别处看到的例子好像没有这个问题
在上面的代码中,您似乎使用 BackColor
属性.
创建了项目 Gray
您可以使用覆盖 ToolStripDropDownBackground
到 return Color.Gray
,这会删除 while 行。
您还可以覆盖 ImageMarginGradientBegin
、ImageMarginGradientMiddle
和 ImageMarginGradientEnd
以创建 image/checkbox 区域 Gray
.
这是我添加到您的代码中以获得所需值的内容:
public override Color ImageMarginGradientBegin
{
get { return Color.Gray; }
}
public override Color ImageMarginGradientMiddle
{
get { return Color.Gray; }
}
public override Color ImageMarginGradientEnd
{
get { return Color.Gray; }
}
public override Color ToolStripDropDownBackground
{
get { return Color.Gray; }
}
我目前在 C# windows 表单应用程序上为 MenuStrip 设置了自定义渲染:
private class HeaderMenuRender : ProfessionalColorTable
{
public override Color MenuItemSelectedGradientBegin
{
get
{
return Color.Gray;
}
}
public override Color MenuItemSelectedGradientEnd
{
get
{
return Color.Gray;
}
}
public override Color MenuItemPressedGradientBegin
{
get
{
return Color.Gray;
}
}
public override Color MenuItemPressedGradientEnd
{
get
{
return Color.Gray;
}
}
public override Color MenuItemBorder
{
get
{
return Color.Gray;
}
}
public override Color MenuBorder
{
get
{
return Color.Gray;
}
}
}
然后将其应用于窗体上的现有 MenuStrip 控件以创建自定义呈现。
然而,当 运行 应用程序并从显示的菜单中进行选择时,尽管菜单选项的颜色正确,但仍有一个小 'White'(可以说是 'Control' colour) 横跨所选 MenuStrip 选项长度的栏(在下面的蓝色框中表示):
是否有特定的 属性 自定义渲染器我没有包括或者我缺少的东西正在设置 MenuStrip 所选项目的这个特定部分?我在别处看到的例子好像没有这个问题
在上面的代码中,您似乎使用 BackColor
属性.
Gray
您可以使用覆盖 ToolStripDropDownBackground
到 return Color.Gray
,这会删除 while 行。
您还可以覆盖 ImageMarginGradientBegin
、ImageMarginGradientMiddle
和 ImageMarginGradientEnd
以创建 image/checkbox 区域 Gray
.
这是我添加到您的代码中以获得所需值的内容:
public override Color ImageMarginGradientBegin
{
get { return Color.Gray; }
}
public override Color ImageMarginGradientMiddle
{
get { return Color.Gray; }
}
public override Color ImageMarginGradientEnd
{
get { return Color.Gray; }
}
public override Color ToolStripDropDownBackground
{
get { return Color.Gray; }
}