有没有人知道我是否能够在visual studio 2008中的简单下拉菜单中更改图像条的颜色?目前有一个下拉菜单,我有自己的物品收集,下拉菜单旁边的每一个都是一个图像条,这是一个灰色的颜色,有浅到深的渐变。我很想知道这种颜色是否可以改变或者可以完全取消? 先谢谢你们,Craig。
答案 0 :(得分:1)
您可以通过创建ToolStripRenderer的子类并覆盖相应的呈现方法来实现此行为。有关示例,请参阅MSDN。
我假设您正在寻找WinForms解决方案。对于WPF / Xaml,解决方案当然是完全不同的,可以通过更改控件模板来完成。
答案 1 :(得分:0)
我会假设你在询问winforms,因为我不知道WPF。
如果您只想隐藏图片条,可以将ShowImageMargin
和ShowCheckMargin
属性设置为false。但是,您将无法显示菜单项的图像。
至少在XP上,将下拉列表的RenderMode
属性设置为ToolStripRenderMode.System
将为您提供一个没有任何图像边距装饰的菜单;虽然它可能与您的应用程序的视觉风格不匹配。
如果为每个菜单项设置BackColor
,图像边距将会模糊不清。
要隐藏图像边距而不更改下拉列表的视觉样式,您需要创建一个空OnRenderImageMargin
函数的渲染器,如下所示:
class MyRenderer : ToolStripProfessionalRenderer
{
protected virtual void OnRenderImageMargin(ToolStripRenderEventArgs e)
{
// do nothing
}
}
然后将下拉列表的Renderer
属性设置为新渲染器类的实例。您可以通过修改渲染器的ColorTable
以类似的方式更改图像边距的颜色。
但是,在你做任何这些之前,先问问自己:
第一个问题的答案通常是“不”。