visual Studio 2017 扩展开发(二)《菜单图标详解》

摘要:
使用Alpha通道指示每个图标中透明度的位置。首选32位彩色图标。创建GUID并将其复制到值。IDSymbol的name属性是图标的ID,值表示条带的位置。如果只有一个图标,则值为1删除“value=”6“/˃文件的位图选项卡下有一个位图,位图GUID的值设置为guidImages,以及创建的GuidSymbol中的名称˂Bitmapguid=“guidImages”href=“ResourcesCommand.png”usedList=“bmpPic1,bmpPic2,bmpPicSearch,bmpPickX,bmpPicArraws,bmpPingString通过”文本˃测试菜单图标。

在上一篇我们在菜单栏创建了一个菜单,菜单上显示了一个图标跟文本。那么我们自己创建的菜单如何修改自定义的菜单图标呢。下面娓娓道来。。。。。

首先你要有一个图,创建一个32位的位图。这个位图的像素是16px 16px,或者是16px 16px的倍数。

每个图标都放在单个行中彼此相邻的位图上。使用Alpha通道在每个图标中指示透明的位置。如果使用8位颜色深度,请使用RGB(255,0,255)作为透明度。32位彩色图标是首选。

将图标文件复制到项目的Resources文件夹下。

打开command.png我们看到这个位图里面有六个图标

visual Studio 2017 扩展开发(二)《菜单图标详解》第1张

位图ID的定义方式与其他方法有点不同: 声明从位图条的guid开始,然后存在包含位图的位图条的资源id,在按钮定义中使用元素的数字ids。该声明的一个重要方面是元素id必须是位图条中位图的实际索引;

在CommandPackage.vsct文件的Symbols标签里我们看到,name为guidImages的元素。创建GUID复制到value里。

IDSymbol的name属性是图标的id,value则表示的是条带的位置,如果只有一个图标那么value就是1咯.

 <GuidSymbol name="guidImages" value="{2834e3f7-2621-479a-bb6f-e9e48d5f4df4}" >
      <IDSymbol name="bmpPic1" value="1" />
      <IDSymbol name="bmpPic2" value="2" />
      <IDSymbol name="bmpPicSearch" value="3" />
      <IDSymbol name="bmpPicX" value="4" />
      <IDSymbol name="bmpPicArrows" value="5" />
      <IDSymbol name="bmpPicStrikethrough" value="6" />
    </GuidSymbol>

文件下的Bitmaps标签下有一个Bitmaps,这个Bitmaps的GUID的值设置为guidImages,创建的GuidSymbol里的name的名称。将href设置为位图的相对路径。usedList就是之前创建的IDSymbol的name,多个就用逗号隔开。

<Bitmap guid="guidImages" href="ResourcesCommand.png" usedList="bmpPic1, bmpPic2, bmpPicSearch, bmpPicX, bmpPicArrows, bmpPicStrikethrough"/>

在<Button>里面有个<Icon> guid就是我们创建的GuidSymbol的name,id则是IDSymbol的name.你要用哪个图标捏,就写上IDSymbol对应name.

 <Button guid="guidCommandPackageCmdSet" id="CommandId" priority="0x0100" type="Button">
        <Parent guid="guidCommandPackageCmdSet" id="MyMenuGroup" />
        <Icon guid="guidImages" id="bmpPicSearch" />
        <Strings>
          <ButtonText>测试菜单</ButtonText>
        </Strings>
      </Button>
    </Buttons>

运行,在实验示例中我们可以看到自己创建的菜单命令的图标是不是跟你位图上对应的图标。

结果:

visual Studio 2017 扩展开发(二)《菜单图标详解》第2张

本文仅是本人随笔记录,如有疑问欢迎在下面评论。转载请写明出处。如果对你有帮助,动动鼠标有下方给我点个赞。你的支持是我最大的动力。

免责声明:文章转载自《visual Studio 2017 扩展开发(二)《菜单图标详解》》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Kubernetes进阶实战读书笔记:配置容器应用(容器化应用配置方式)Linux平台下贪吃蛇游戏的运行下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

c#生成cad缩略图或者图片

struct BITMAPFILEHEADER{public short bfType;public int bfSize;public short bfReserved1;public short bfReserved2;public int bfOffBits;}public static System.Drawing.Image GetDwgImag...

Delphi中使用调色板创建渐变色位图

 //创建调色板函数,R,G,B颜色分量,0-1之间取值  1 FUNCTION MaxGradientPalette(CONST RedFactor, GreenFactor, BlueFactor:  Single):  hPalette; 2   VAR 3     i             :  INTEGER; 4     Logic...

使用StretchBlt之前一定要用SetStretchBltMode(COLORONCOLOR)

近日要实现将缩小的位图保存在后台,以便在OnPaint刷新的时候仍然可以看到正确的图像,遂在lg_Bitmap类中添加了这样一个函数     BOOL lg_Bitmap::LoadFromHDC(HDC hDC)    {        if(NULL == hDC)            return FALSE;        BITMAP Bit...

【WPF学习】第五十二章 动画性能

  通常,为用户界面应用动画只不过是创建并配置正确的动画和故事板对象。但在其他情况下,特别是同时发生多个动画时,可能需要更加关注性能。特定的效果更可能导致这些问题——例如,那些涉及视频、大位图以及多层透明等的效果通常需要占用更多CPU开销。如果不谨慎实现这类效果,运行它们使可能造成明显抖动,或者会从其他同时运行的应用程序抢占CPU时间。   幸运的是,WP...

BMP图像数据格式详解

一.简介 BMP(Bitmap-File)图形文件是Windows采用的图形文件格式,在Windows环境下运行的所有图象处理软件都支持BMP图象文件格式。Windows系统内部各图像绘制操作都是以BMP为基础的。Windows 3.0以前的BMP图文件格式与显示设备有关,因此把这种BMP图象文件格式称为设备相关位图DDB(device-dependent...

常用EXE文件反编译工具【转】

http://www.cnblogs.com/happyday56/p/3740108.html PE Explorer V1.99 R5 绿色汉化特别版_强大的可视化汉化集成工具 功能极为强大的可视化汉化集成工具,可直接浏览、修改软件资源,包括菜单、对话框、字符串表等; 另外,还具备有 W32DASM 软件的反编译能力和PEditor 软件的 PE 文件...