Visual Studio 扩展入门(六)菜单篇 下

8 篇文章 0 订阅
6 篇文章 0 订阅


IDE在对自定义菜单的扩展上,还提供了更方便和人性化的操作,如:绑定快捷键、为命令添加自定义图标、本地化语言。

一、示例一:绑定快捷键

验证键盘快捷方式的可用性

  1. 工具>选项>环境>键盘
  2. 确保将使用新快捷方式设置为全局
  3. 光标选中“按快捷键”输入框,按下要使用的键盘快捷键。若快捷方式已被占用,则当前使用的快捷方式框将显示快捷方式当前调用的命令。
  4. 尝试不同的键组合,直到找到未映射的组合。


1、创建菜单命令

  1. 创建 VSIX 项目模板,并命名为KeyBindingButton。
  2. 通过" 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>

其中,guidid属性设置为要调用的命令的属性。
mod1属性设置为CONTROL、ALT或SHIFT键。(最好少用shift键,因为大小写切换会常用)。
key1可以使用虚拟键代码
如果您的键盘快捷键需要两个以上的键,请设置mod2key2属性。

  • 若快捷键命令在 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="Resources\pen.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>

此时运行调试,效果如下:

在这里插入图片描述


三、本地化语言

请直接参考官方示例

博客的示例源码:https://github.com/21thCenturyBoy/VSIX_HelloWorld

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于Microsoft Visual Studio 2008环境(具体项目类型为“其他项目类型”→“扩展性”→“Visual Studio 外接程序”),用C#语言开发实现的Visual Studio扩展插件,对.NET项目开发很有用,可以批量执行任务,包括折叠和展开所有项目,批量修改项目的目标平台、输出路径、生成事件和.NET版本,批量创建和加载项目,快速智能修改项目的dll引用、添加dll引用、拷贝项目依赖项、查看项目dll引用、提交dll到Lib库、检查Lib库是否有重复dll、生成SQL语句和生成GUID等,在搭建项目和发布系统时很有用,有了它可以避免很多不必要的问题,同时也可以减少很多重复的工作,尤其是在发布系统时可以保证程序的正确性。在给用户编译发布程序的时候很多人都没有意识到目标平台(x86、x64和Any CPU)和.net版本(2.0或3.5等)的选择对用户可能带来的不良用户体验(通常程序报错,运行不了,或者某个模块运行不了),即便意识到了这一点也很难保证在不同解决方案配置下(debug和release等)程序的目标平台、.Net版本和dll版本的正确性,通常debug没有问题,但是一旦发布release版本就会出现很多问题,同时如果要手工修改相关配置工作量也很大。该插件绝对是世界上独一无二的,当然如果需要更多批处理功能,聪明的你也可以继续发挥哦…… 插件基于Microsoft Visual Studio 2008环境进行开发,所以插件可以在Microsoft Visual Studio 2008以上版本的Microsoft Visual Studio 环境中使用,目前测试过Microsoft Visual Studio 2008、Microsoft Visual Studio 2010、Microsoft Visual Studio 2012和Microsoft Visual Studio 2013。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值