有谁知道我是否以及如何在 Visual Studio 2008 中的一个简单下拉菜单中更改图像条的颜色?目前有一个下拉菜单,我有自己的项目集合,下拉菜单上的每个项目旁边都有一个图像条,它目前是灰色的,带有从浅到深的渐变。我很想知道这种颜色是否可以更改或可能完全删除?在此先感谢各位,克雷格。
craig
问问题
771 次
2 回答
1
您可以通过创建 ToolStripRenderer 的子类并覆盖适当的呈现方法来实现此行为。有关示例,请参阅 MSDN。
我假设您正在寻找 WinForms 解决方案。对于 WPF/Xaml,解决方案当然完全不同,可以通过更改控件模板来完成。
于 2009-07-31T10:04:28.563 回答
0
我假设您在询问 winforms,因为我不了解 WPF。
如果只想隐藏图像条,可以将ShowImageMargin
和ShowCheckMargin
属性设置为 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 回答