IDE在对自定义菜单的扩展上,还提供了更方便和人性化的操作,如:绑定快捷键、为命令添加自定义图标、本地化语言。
一、示例一:绑定快捷键
验证键盘快捷方式的可用性
- 在工具>选项>环境>键盘。
- 确保将使用新快捷方式设置为全局。
- 光标选中“按快捷键”输入框,按下要使用的键盘快捷键。若快捷方式已被占用,则当前使用的快捷方式框将显示快捷方式当前调用的命令。
- 尝试不同的键组合,直到找到未映射的组合。
1、创建菜单命令
- 创建 VSIX 项目模板,并命名为KeyBindingButton。
- 通过" Visual c # 项> Extensibility(扩展性) > Command(命令)",添加自定义命令 KeyBindingCommand.cs。
此时解决方案目录如下:
2、修改.vsct文件为KeyBindingCommand命令创建快捷键
<KeyBindings>
<KeyBinding guid="guidKeyBindingButtonPackageCmdSet" id="KeyBindingCommandId" editor="guidVSStd97" key1="1" mod1="CONTROL" key2 ="2" mod2="ALT"/>
</KeyBindings>
其中,guid和 id属性设置为要调用的命令的属性。
mod1属性设置为CONTROL、ALT或SHIFT键。(最好少用shift键,因为大小写切换会常用)。
key1可以使用虚拟键代码。
如果您的键盘快捷键需要两个以上的键,请设置mod2和key2属性。
- 若快捷键命令在 Visual Studio 编辑器中用,请将editor属性设置为guidVSStd97。
- 若仅在自定义编辑器中可用,请将editor属性设置为自定义编辑器的名称。
二、示例二:为命令添加自定义图标
在示例一的基础之上,修改快捷键命令的图标。
1、设计图标
图标要求:
- 尺寸:16像素x 16 像素,允许使用多个位图横向排列。如下:
- 颜色模式:8位颜色深度 (256 颜色) 或32位颜色深度 (真彩色) ,若使用8位颜色深度,请使用洋红色 RGB(255,0,255) 作为透明度,建议使用32位颜色深度。
2、修改.vsct文件添加图标信息
添加添加 <GuidSymbol>元素,名称属性为 testIcon 。(通过工具 > "创建 guid",然后选择 "注册表格式" 并单击 "复制)为value 属性赋值,我的IDE生成为
{BD266F4F-3EBD-4325-8A5A-7E261BA79808}
代码如下:
<GuidSymbol name="testIcon" value="{BD266F4F-3EBD-4325-8A5A-7E261BA79808}">
<IDSymbol name="testIcon1" value="1" />
</GuidSymbol>
- name:图标ID
- value:指示其在位图条带上的位置,若只有一个图标设为1。
添加<Bitmap>元素,在.vsct文件中创建。表示包含图标的位图。
<Bitmap guid="testIcon" href="Resourcespen.png" usedList="testIcon1"/>
- guid:指向<GuidSymbol>的name属性
- href:设置位图文件的相对路径
- usedList:将<IDSymbol>元素。 此属性指定要在 VSPackage 中使用的图标,不在列表中的图标被排除,用逗号将多个图标分隔开,如:usedList="bmpPic1, bmpPic2, bmpPicSearch, bmpPicX, bmpPicArrows, bmpPicStrikethrough"。
修改<Button>元素中的<Icon>元素节点如下:
<Button guid="guidKeyBindingButtonPackageCmdSet" id="KeyBindingCommandId" priority="0x0100" type="Button">
<Parent guid="guidKeyBindingButtonPackageCmdSet" id="MyMenuGroup" />
<Icon guid="testIcon" id="testIcon1" />
<Strings>
<ButtonText>Invoke KeyBindingCommand</ButtonText>
</Strings>
</Button>
此时运行调试,效果如下:
三、本地化语言
请直接参考官方示例。