我想將一個子菜單添加到Visual Studio中的上下文菜單中。類似於ReSharper的作用: 將子菜單添加到Visual Studio擴展中的上下文菜單中
我的設置如下: MyTopMenuGroup
:包含Command1
和MyMenuController
。 MenuController本身又有另一個組,其中包含一些其他命令。不幸的是,MenuController不顯示。
我XAML:
<Groups>
<Group guid="mypkg" id="MyTopMenuGroup" >
<Parent guid="guidSHLMainMenu" id="IDM_VS_CTXT_ITEMNODE" />
</Group>
<Group guid="mypkg" id="MySubMenuGroup">
<Parent guid="mypkg" id="MyMenuController" />
</Group>
</Groups>
<Menus>
<Menu guid="mypkg" id="MyMenuController" type="MenuController">
<Parent guid="mypkg" id="MyTopMenuGroup" />
</Menu>
</Menus>
<Buttons>
<Button guid="mypkg" id="Command1" type="Button">
<Parent guid="mypkg" id="MyTopMenuGroup" />
</Button>
<Button guid="mypkg" id="Command2" type="Button">
<Parent guid="mypkg" id="MyMenuController" />
</Button>
<Button guid="mypkg" id="Command3" type="Button">
<Parent guid="mypkg" id="MySubMenuGroup" />
</Button>
<Button guid="mypkg" id="Command4" type="Button">
<Parent guid="mypkg" id="MySubMenuGroup" />
</Button>
</Buttons>
C#這增加的按鈕菜單:
OleMenuCommandService commandService = this.ServiceProvider.GetService(typeof(IMenuCommandService)) as OleMenuCommandService;
if (commandService != null)
{
var menuCommandID = new CommandID(CommandSet, Command1);
var menuItem = new MenuCommand(this.MenuItemCallback, menuCommandID);
commandService.AddCommand(menuItem);
//etc, do this for all 4 Commands
//no code to construct groups & menus (is this necessary?)
}
如預期COMMAND1顯示爲 「頂層」 命令。 其他命令和菜單根本不顯示。
爲什麼菜單不顯示,我怎樣才能看到它?
設置沒問題,重新啓動修復了我的問題。對於與此相關的其他人,我已經寫了一篇關於如何將其歸檔的小介紹:https://blog.famoser.ch/visual-studio-extensions-commands/ –