Использование встроенных иконок в расширении Visual Studio

Какой шаг мне нужно выполнить, чтобы использовать некоторые встроенные значки Visual Studio на моей панели инструментов расширения (например, значки "Открыть", "Сохранить", "Выполнить", "Разорвать")?

Я пытался использовать константы, такие как cmdidSave от stdidcmd.h в моем файле VSCT, как это:

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

Но это не показывает значок. Вместо этого он начинает показывать кнопку в текстовом стиле (текстовая подпись вместо изображения).

С другой стороны, он работает нормально, если я использую "метод полоски изображения" (как это сделано в шаблоне расширения по умолчанию), но это не то, что я хочу делать.

1 ответ

Решение

ХОРОШО. Так что вот в случае, если кто-то борется:

В верхней части вашего файла VSCT включите эту ссылку:

<Include href="KnownImageIds.vsct"/>

Visual Studio (по состоянию на обновление 3 сообщества VS2015) знает, где находится этот файл.

Сейчас использую 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> линия.

Другие вопросы по тегам