下拉菜单属性

时间:2009-07-31 08:52:43

标签: visual-studio-2008 menu drop-down-menu appearance

有没有人知道我是否能够在visual studio 2008中的简单下拉菜单中更改图像条的颜色?目前有一个下拉菜单,我有自己的物品收集,下拉菜单旁边的每一个都是一个图像条,这是一个灰色的颜色,有浅到深的渐变。我很想知道这种颜色是否可以改变或者可以完全取消? 先谢谢你们,Craig。

2 个答案:

答案 0 :(得分:1)

您可以通过创建ToolStripRenderer的子类并覆盖相应的呈现方法来实现此行为。有关示例,请参阅MSDN。

我假设您正在寻找WinForms解决方案。对于WPF / Xaml,解决方案当然是完全不同的,可以通过更改控件模板来完成。

答案 1 :(得分:0)

我会假设你在询问winforms,因为我不知道WPF。

如果您只想隐藏图片条,可以将ShowImageMarginShowCheckMargin属性设置为false。但是,您将无法显示菜单项的图像。

至少在XP上,将下拉列表的RenderMode属性设置为ToolStripRenderMode.System将为您提供一个没有任何图像边距装饰的菜单;虽然它可能与您的应用程序的视觉风格不匹配。

如果为每个菜单项设置BackColor,图像边距将会模糊不清。

要隐藏图像边距而不更改下拉列表的视觉样式,您需要创建一个空OnRenderImageMargin函数的渲染器,如下所示:

class MyRenderer : ToolStripProfessionalRenderer
{
    protected virtual void OnRenderImageMargin(ToolStripRenderEventArgs e)
    {
        // do nothing
    }
}

然后将下拉列表的Renderer属性设置为新渲染器类的实例。您可以通过修改渲染器的ColorTable以类似的方式更改图像边距的颜色。

但是,在你做任何这些之前,先问问自己:

  • 将界面更改为不熟悉的界面是否有可用性?
  • 如果有,这种好处是否比保持代码简单的好处更大,以便您可以快速响应用户反馈?

第一个问题的答案通常是“不”。