Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 2008 下拉菜单属性_Visual Studio 2008_Menu_Drop Down Menu_Appearance - Fatal编程技术网

Visual studio 2008 下拉菜单属性

Visual studio 2008 下拉菜单属性,visual-studio-2008,menu,drop-down-menu,appearance,Visual Studio 2008,Menu,Drop Down Menu,Appearance,有人知道我是否能够以及如何在VisualStudio2008的一个简单下拉菜单中更改图像条的颜色吗?目前有一个下拉菜单,我有我自己的项目集合,在下拉菜单上的每个项目旁边都有一个图像条,它现在是一种灰色,带有从浅到深的渐变。我很想知道这种颜色是否可以改变或者完全去除? 提前感谢各位,Craig。您可以通过创建ToolStripRenderer的子类并重写适当的渲染方法来实现此行为。有关示例,请参见MSDN 我假设您正在寻找WinForms解决方案。对于WPF/Xaml,解决方案当然完全不同,可以通

有人知道我是否能够以及如何在VisualStudio2008的一个简单下拉菜单中更改图像条的颜色吗?目前有一个下拉菜单,我有我自己的项目集合,在下拉菜单上的每个项目旁边都有一个图像条,它现在是一种灰色,带有从浅到深的渐变。我很想知道这种颜色是否可以改变或者完全去除?
提前感谢各位,Craig。

您可以通过创建ToolStripRenderer的子类并重写适当的渲染方法来实现此行为。有关示例,请参见MSDN


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

我假设您询问的是winforms,因为我不知道WPF

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

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

如果为每个菜单项设置
背景色
,图像边距将被遮挡

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

class MyRenderer : ToolStripProfessionalRenderer
{
    protected virtual void OnRenderImageMargin(ToolStripRenderEventArgs e)
    {
        // do nothing
    }
}
然后将下拉列表的属性设置为新渲染器类的实例。通过修改渲染器的
颜色表
,可以以类似的方式更改图像边距的颜色

但是,在你做这些事情之前,问问你自己:

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

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

请详细说明,什么是图像条?我猜它不是标准的.NET控件?图像条是显示在下拉菜单中项目文本旁边的彩色区域,它是一个留出的区域,允许在下拉菜单中的各个项目旁边放置图像,例如,编辑菜单下用于剪切的剪刀图标包含在图像条中。例如,在microsoft word中就是这样一个例子。单击“编辑”菜单,您将在菜单列表的左侧看到一个条带,该条带用于图像或键盘快捷键。谢谢simon,我会尝试一下,看看我能做些什么!!