向菜单命令添加图标

命令可以同时显示在菜单和工具栏上。 在工具栏上,命令通常只显示一个图标(以节省空间),而命令通常同时显示一个图标和文本。

图标宽 16 像素,高 16 像素,可以是 8 位颜色深度(256 颜色)或 32 位颜色深度(真色)。 首选 32 位颜色图标。 虽然允许多个位图,但图标通常排列在单个位图中的单个水平行中。 此位图在 .vsct 文件中声明,以及位图中可用的单个图标。 有关更多详细信息, 请参阅 Bitmaps 元素 参考。

向命令添加图标

以下过程假定你有一个具有菜单命令的现有 VSPackage 项目。 若要了解如何执行此操作,请参阅 使用菜单命令创建扩展。

  1. 创建颜色深度为 32 位的位图。 图标始终为 16 x 16,因此此位图必须高 16 像素,宽度为 16 像素的倍数。

    每个图标都放置在一行中彼此相邻的位图上。 使用 alpha 通道指示每个图标中的透明度位置。

    如果使用 8 位颜色深度,请使用 magenta RGB(255,0,255)作为透明度。 但是,首选 32 位颜色图标。

  2. 将图标文件复制到 VSPackage 项目中的资源目录。 在解决方案资源管理器中,将图标添加到项目。 (选择资源,并在上下文菜单上单击“添加,然后单击“现有项”,然后选择你的图标文件。

  3. 编辑器中打开 .vsct 文件。

  4. GuidSymbol添加名为 testIcon元素。 创建 GUID(工具>创建 GUID,然后选择注册表格式并单击“复制”)并将其粘贴到属性中。value 结果应如下所示:

    <!-- Create your own GUID -->
    <GuidSymbol name="testIcon" value="{00000000-0000-0000-0000-0000}">
    
  5. 为图标添加一个 <IDSymbol> 。 该 name 属性是图标的 ID,指示 value 其在条带上的位置(如果有)。 如果只有一个图标,请添加 1。 结果应如下所示:

    <!-- Create your own GUID -->
    <GuidSymbol name="testIcon" value="{00000000-0000-0000-0000-0000}">
        <IDSymbol name="testIcon1" value="1" />
    </GuidSymbol>
    
  6. 在 .vsct 文件的节中创建<Commands>一个<Bitmap><Bitmaps>用于表示包含图标的位图的节

    • guid 值设置为在上一步中创建的 <GuidSymbol> 元素的名称。

    • href 值设置为位图文件的相对路径(在本例中为 Resources\<icon 文件名>)。

    • usedList 值设置为之前创建的 IDSymbol。 此属性指定要在 VSPackage 中使用的图标的逗号分隔列表。 不在列表中的图标将排除窗体编译。

      位图块应如下所示:

      <Bitmap guid="testIcon" href="Resources\<icon file name>" usedList="testIcon1"/>
      
  7. 在现有 <Button> 元素中,将 Icon 元素设置为前面创建的 GUIDSymbol 和 IDSymbol 值。 下面是具有这些值的 Button 元素的示例:

    <Button guid="guidAddIconCmdSet" id="cmdidMyCommand" priority="0x0100" type="Button">
        <Parent guid="guidAddIconCmdSet" id="MyMenuGroup" />
        <Icon guid="testIcon" id="testIcon1" />
        <Strings>
            <ButtonText>My Command name</ButtonText>
        </Strings>
    </Button>
    
  8. 测试图标。 生成项目并启动调试。 在实验实例中,找到该命令。 它应显示添加的图标。