如何在Visual Studio 2010扩展中添加新图标?

时间:2012-02-01 08:00:27

标签: visual-studio-2010 vsx vsix

我正在开发Visual Studio 2010扩展,我的窗口内已经有了一个工具栏。在那个工具栏上,我有一个按钮,我想给一个图标 - 我自己的图标! 我已经阅读了this article,它很棒但是......它解释了如何替换图标。

我想添加一个额外的图标。

我如何实现这一目标?

2 个答案:

答案 0 :(得分:6)

首先,添加位图并将其构建操作设置为资源

enter image description here

记住,令人震惊的粉红色=透明(该死的,老派!)

enter image description here

然后,在您的vsct文件中,将图像添加到位图部分

<Bitmaps>
    <Bitmap guid="AddSampleData.bmpGuid"
            href="..\Button Bitmaps\AddSampleData.bmp"
            usedList="AddSampleData.bmpId" />
    <Bitmap guid="ApplySampleData.bmpGuid"
            href="..\Button Bitmaps\ApplySampleData.bmp"
            usedList="ApplySampleData.bmpId" />
</Bitmaps>

并在符号节点

中为其指定一个guid
<Symbols>
    <!-- snip -->
    <GuidSymbol name="AddSampleData.bmpGuid"
                value="{dcae7c84-8e91-4f8a-907b-95ccb0f52e6e}">
        <IDSymbol name="AddSampleData.bmpId"
                    value="1" />
    </GuidSymbol>
    <GuidSymbol name="ApplySampleData.bmpGuid"
                value="{9f555245-2430-4e6f-992b-b49ce87a31a2}">
        <IDSymbol name="ApplySampleData.bmpId"
                    value="1" />
    </GuidSymbol>
</Symbols>

并将其应用于按钮

<Buttons>
<!-- snip -->
    <Button guid="guidEditorExtensionCommandSet"
            id="setDesignTimeDataOnPage"
            priority="0x0100">
        <Icon guid="ApplySampleData.bmpGuid"
                id="ApplySampleData.bmpId" />
        <Strings>
                    <!-- snip -->
        </Strings>
    </Button>
</Buttons>

当然,它总是更容易使用可用的工具,包括优秀的VSPackage Builder extension.

enter image description here

答案 1 :(得分:6)

解决方法是创建PNG并将扩展名重命名为* .bmp 。 VS将接受它作为图标图像,它也将具有透明度(来自Visual Studio Extensibility&gt; Toolbox Icons -- Is transparency supported?