3

我需要执行哪些步骤才能在我的扩展工具栏中使用 Visual Studio 的一些内置图标(例如打开、保存、运行、中断图标)?

我曾尝试在我的 VSCT 文件中使用常量,cmdidSave例如stdidcmd.h

<Button guid="guidBBTWindowPackageCmdSet" id="cmdidMyButton1" priority="0x0101" type="Button">
    <Parent guid="guidBBTWindowPackageCmdSet" id="ToolbarGroupID"/>
    <Icon guid="CMDSETID_StandardCommandSet14" id="cmdidSave" />
    <Strings>
      <CommandName>cmdidMyCommand1</CommandName>
      <ButtonText>Load File</ButtonText>
    </Strings>
</Button>

但它不显示图标。相反,它开始以文本样式显示按钮(文本标题而不是图像)。

另一方面,如果我使用“图像剥离方法”(如在默认扩展模板中所做的那样),它工作得很好,但这不是我想要做的。

4

1 回答 1

4

好的。因此,以防万一有人在苦苦挣扎:

在 VSCT 文件的顶部,包含以下参考:

<Include href="KnownImageIds.vsct"/>

Visual Studio(从 VS2015 Community Update 3 开始)知道这个文件在哪里。

现在ImageCatalogGuid用作<Icon>节点的 GUID。Visual Studio Intellisense 将列出所有可用的图标供您选择(您没想到,对吧!)。

<Button guid="guidCommand1PackageCmdSet" id="Command1Id" priority="0x0100" type="Button">
  <Parent guid="guidCommand1PackageCmdSet" id="MyMenuGroup" />
  <Icon guid="ImageCatalogGuid" id="CacheRefresh" />
  <CommandFlag>IconIsMoniker</CommandFlag>
  <Strings>
    <ButtonText>Invoke Command1</ButtonText>
  </Strings>
</Button>

注意额外的行<CommandFlag>IconIsMoniker</CommandFlag>。这必须紧跟在该<Icon>行之后。

于 2016-12-24T07:37:57.650 回答