Использование встроенных иконок в расширении 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>
линия.