有没有人知道我能不能以及如何在visual studio 2008中通过简单的下拉菜单改变图像条的颜色?目前我有一个下拉菜单,我有自己的项目集合,在每个下拉菜单上的旁边都是一个图像条,它是灰色的,带有从亮到暗的渐变。我很想知道这个颜色是否可以改变,或者完全去掉?先谢谢你们,克雷格。
发布于 2009-07-31 10:25:07
我假设你问的是winforms,因为我不知道WPF。
如果只想隐藏图像条,可以将ShowImageMargin和ShowCheckMargin属性设置为false。但是,您将无法显示菜单项的图像。
至少在XP上,将dropdown的RenderMode属性设置为ToolStripRenderMode.System将为您提供一个没有任何图像边距装饰的菜单;尽管它可能与您的应用程序的视觉样式不匹配。
如果为每个菜单项设置BackColor,则图像边距将变得模糊。
要在不更改下拉列表的视觉样式的情况下隐藏图像边距,您需要创建一个带有空OnRenderImageMargin函数的渲染器,如下所示:
class MyRenderer : ToolStripProfessionalRenderer
{
protected virtual void OnRenderImageMargin(ToolStripRenderEventArgs e)
{
// do nothing
}
}然后将dropdown的Renderer属性设置为新渲染器类的实例。您可以通过修改渲染器的ColorTable,以类似的方式更改图像边距的颜色。
但是,在你做这些之前,问问你自己:
第一个问题的答案通常是“不”。
发布于 2009-07-31 10:04:29
您可以通过创建ToolStripRenderer的子类并覆盖适当的呈现方法来实现此行为。有关示例,请参阅MSDN。
我假设您正在寻找WinForms解决方案。对于WPF/Xaml,解决方案当然是完全不同的,可以通过更改控件模板来实现。
https://stackoverflow.com/questions/1211386
复制相似问题