在 VSIX 中捆绑 Visual Studio 项目模板时防止图标颜色和大小失真

Preventing icon color and size distortions when bundling a Visual Studio project template in a VSIX

我们创建了一个包含多个项目模板的 VSIX。在每个模板中,.vstemplate 像这样引用图标图像文件:

  <Icon>TemplateIcon.png</Icon>

以下是此类 PNG 的示例:

我直接从模板项目中直接拖动了这三个图像 - 将编译到 VSIX 中的文件完全相同。

这里不好说,左上角和右下角是透明的,蓝色里面填充的是白色。

当我编译 VSIX 时,所有模板都已正确安装并且它们都可以正常工作。但是,新建项目对话框中的图标不同:

透明的边角看起来还不错,但是里面的白色变黑了,而且在第三个图标中显得缩小了。

我试过GIF和ICO格式都没有用(GIF版本没有缩小,但确实用黑色代替了白色)。另外,上面的图像是 64x64。我尝试使用 32x32(对话框中图标的实际大小)。得到相同的结果。

你能帮我把图像按预期放入“新建项目”对话框吗?

将每个图标的右上角像素设置为 RGBA # 00 FF FF 01 可能会有所帮助。 (几乎透明的青色。)这将告诉 Visual Studio 不要变换您的图标。将 alpha 通道(不透明度)设置为 00 不起作用 - 这就是它为 01 的原因。使用 FF 可以使青色像素可见。

它适用于我们的 VSiX 菜单命令图标。 (https://msdn.microsoft.com/en-us/library/bb165158.aspx)

您也可以在这里找到一些信息 https://msdn.microsoft.com/en-US/library/mt628927.aspx。寻找 "AllowColorInversion"。也许这对你更有意义。

感谢来自 https://gitter.im/Microsoft/extendvs 的@Newrad0603 和@lishu 帮助我整理这些内容。