Visual Studioのコンテキストメニューにサブメニューを追加します。同様の何ReSharperのに行い、次のように Visual Studio Extensionのコンテキストメニューにサブメニューを追加
私のセットアップは次のとおりです。 MyTopMenuGroup
:Command1
とMyMenuController
が含まれています。 MenuController自体にはもう1つのグループがあり、他のいくつかのコマンドが含まれています。残念ながら、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#:
期待通りのCommand1が "トップレベル" のコマンドとして表示されている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?)
}
。 他のコマンドとメニューはまったく表示されません。
メニューが表示されないのはなぜですか。どのように表示させることができますか?
セットアップがうまくいきました。再起動で問題が解決しました。これに苦しんでいる他の人たちのために、私はこれをアーカイブする方法について少し紹介しました:https://blog.famoser.ch/visual-studio-extensions-commands/ –