0

有谁知道我是否以及如何在 Visual Studio 2008 中的一个简单下拉菜单中更改图像条的颜色?目前有一个下拉菜单,我有自己的项目集合,下拉菜单上的每个项目旁边都有一个图像条,它目前是灰色的,带有从浅到深的渐变。我很想知道这种颜色是否可以更改或可能完全删除?在此先感谢各位,克雷格。

4

2 回答 2

1

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

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

于 2009-07-31T10:04:28.563 回答
0

我假设您在询问 winforms,因为我不了解 WPF。

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

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

如果您BackColor为每个菜单项设置 a,图像边距将被遮挡。

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

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

然后将下拉列表的Renderer属性设置为新渲染器类的实例。您可以通过修改渲染器的ColorTable.

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

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

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

于 2009-07-31T10:25:07.460 回答