1

了哪一步,我需要遵循使用一些Visual Studio中的內置的圖標在我的擴展程序工具(例如打開,保存,運行,打破圖標)?使用內置在Visual Studio擴展圖標

我一直在使用常量如cmdidSavestdidcmd.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> 

但它不顯示圖標。相反,它開始以文本樣式(文本標題而不是圖像)顯示按鈕。

在另一方面,如果我使用「圖像條方法」它工作正常(如默認擴展模板完成),但是這不是我想做的事情。

回答

3

確定。所以這裏萬一有人在掙扎:

在你VSCT文件的頂部,包括此引用:

<Include href="KnownImageIds.vsct"/> 

Visual Studio中(如VS2015社區更新3)知道在哪裏這個文件。

現在使用ImageCatalogGuid作爲<Icon>節點的GUID。 Visual Studio的智能感知會列出所有可用的圖標供您選擇(你沒想到吧,對吧!)。

<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>行之後立即包含。