VS扩展开发(四) 添加右键菜单项 二级菜单

VS代码窗口默认右键菜单:
VS扩展开发(四) 添加右键菜单项 二级菜单_第1张图片
添加自定义右键菜单项“添加右键菜单lalala”后:
VS扩展开发(四) 添加右键菜单项 二级菜单_第2张图片
皮肤颜色是默认的,可以修改,可以参考其他博客(dbq,因为之前写这篇博客时截的代码图,后来自己发现太糊了而又懒得复原)
Commands package里包含了三组Guid和ID,
从父到子依次为:

guid="guidSHLMainMenu" id="IDM_VS_CTXT_CODEWIN"
guid="guidRightClickPackageCmdSet" id="myMenuGroup"priority="0x1020"
guid="guidRightClickPackageCmdSet" id="cmdIDMyCommand"priority="0x0100" type="Button"

最开始父Guid和ID决定了菜单添加的位置
guid=“guidSHLMainMenu” id="IDM_VS_CTXT_CODEWIN"表示对主窗口的代码窗口的右键菜单操作

如果要添加二级菜单,如下图:
VS扩展开发(四) 添加右键菜单项 二级菜单_第3张图片

先新建一个group1以右键菜单为parent,一级菜单项要定义为Menu而不是Button,以group1为parent,再定义一个group2以一级菜单Menu为parent,再将二级菜单项定义为Button并以group2为parent

<GuidSymbol name="guidAddNewRightClickMenuCmdSet" value="{D4F02A6A-C5AE-4BF2-938D-F1625BDCA0E3}">
   <IDSymbol name="RightClickMenuNewGroup" value="0x3100" />
   <IDSymbol name="CommandNewId" value="0x3110" />
   <IDSymbol name="NewRightClickMenuGroup" value="0x3200" />
   <IDSymbol name="CommandNewSceneId" value="0x3210" />
   <IDSymbol name="CommandNewLayoutId" value="0x3220" /
</GuidSymbol>
<Menus>
    <Menu guid ="guidAddTopMenuCmdSet" id="TopLevelMenu" priority="0xFFFF" type="Menu">
      <Parent guid="guidSHLMainMenu" id="IDG_VS_MM_BUILDDEBUGRUN"/>
      <Strings>
        <ButtonText>Nibiru</ButtonText>
        <CommandName>Nibiru</CommandName>
      </Strings>
    </Menu>   
  <Menu guid ="guidAddNewRightClickMenuCmdSet" id="CommandNewId" priority="0x3110" type="Menu">
    <Parent guid="guidAddNewRightClickMenuCmdSet" id="RightClickMenuNewGroup"/>
    <Strings>
      <ButtonText>New</ButtonText>
      <CommandName>New</CommandName>
    </Strings>
 </Menu>

</Menus>
<Groups>
     <Group guid="guidAddNewRightClickMenuCmdSet" id="RightClickMenuNewGroup" priority="0x3100">
       <Parent guid="guidSHLMainMenu" id="IDM_VS_CTXT_PROJNODE"/>
     </Group>
     <Group guid="guidAddNewRightClickMenuCmdSet" id="NewRightClickMenuGroup" priority="0x3200">
       <Parent guid="guidAddNewRightClickMenuCmdSet" id="CommandNewId"/>
     </Group>        
</Groups>
  
<Buttons>
    <Button guid="guidAddNewRightClickMenuCmdSet" id="CommandNewSceneId" priority="0x3210" type="Button">
      <Parent guid="guidAddNewRightClickMenuCmdSet" id="NewRightClickMenuGroup" />
      <Strings>
        <ButtonText>New Scene</ButtonText>
      </Strings>
    </Button>
  <Button guid="guidAddNewRightClickMenuCmdSet" id="CommandNewLayoutId" priority="0x3220" type="Button">
     <Parent guid="guidAddNewRightClickMenuCmdSet" id="NewRightClickMenuGroup" />
     <Strings>
       <ButtonText>New Layout</ButtonText>
     </Strings>
   </Button>       
 </Buttons>    

你可能感兴趣的:(Visual,Studio,Package,C#)