visual-studio-2015 - 在 Visual Studio 扩展中使用内置图标

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

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

我试过在我的 VSCT 文件中使用 stdidcmd.h 中的 cmdidSave 等常量,如下所示:

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

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

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

最佳答案

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

在您的 VSCT 文件的顶部,包括此引用:

<Include href="KnownImageIds.vsct"/>

Visual Studio(从 VS2015 社区更新 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> 之后行。

关于visual-studio-2015 - 在 Visual Studio 扩展中使用内置图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41296478/

相关文章:

创建 Visual Studio 项目模板扩展 Zip 问题的 PowerShell 脚本

.net - 从外部应用程序访问 Visual Studio

visual-studio-2017 - Visual Studio 2017 - VSIX 包在更新 NuGet 包后停止工作

c# - 并行运行多个异步方法时如何调试特定的异步方法?

c# - 类列表的空引用异常

c++ - 在不安装 Visual C++ 可再发行组件包的情况下运行 Visual Studio 2015 C++ 可执行文件

c# - Visual Studio 文本编辑器扩展

c# - 如何从编辑器分类器项目 (c#) 获取当前解决方案目录?

visual-studio-2010 - 有没有办法隐藏 VS2010 MEF 扩展中的代码?

asp.net-core - ASP.NET 团队如何从 MVC 6 项目中的 *.resx 文件生成 *.Designer.cs 文件?