【问题标题】:Using built-in icons in Visual Studio extension在 Visual Studio 扩展中使用内置图标
【发布时间】:2016-12-23 06:44:57
【问题描述】:

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

我曾尝试在我的 VSCT 文件中使用来自 stdidcmd.hcmdidSave 等常量,如下所示:

<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>

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

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

【问题讨论】:

    标签: visual-studio-2015 visual-studio-extensions vs-extensibility vsct


    【解决方案1】:

    好的。所以在这里以防万一有人在挣扎:

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

    <Include href="KnownImageIds.vsct"/>
    

    Visual Studio(自 VS2015 社区更新 3 起)知道此文件的位置。

    现在使用 ImageCatalogGuid 作为 &lt;Icon&gt; 节点的 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>
    

    注意额外的行&lt;CommandFlag&gt;IconIsMoniker&lt;/CommandFlag&gt;。这必须紧跟在&lt;Icon&gt; 行之后。

    【讨论】:

      猜你喜欢
      • 2017-07-01
      • 1970-01-01
      • 2022-11-03
      • 1970-01-01
      • 2014-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多