我正在努力扩展 Visual Studio 2022 以向上下文菜单添加按钮。
我已经弄清楚如何将按钮添加到代码窗口和解决方案资源管理器内的上下文菜单,尽管我真的希望能够在文档窗口选项卡上下文菜单中放置一个按钮,即当您右键单击 VS 中打开的文件选项卡。
下面是我当前用于在解决方案资源管理器/代码窗口中放置按钮的代码。
<Group guid="guidCopyUEIncludeCommandPackageCmdSet" id="HeaderGroup" priority="0x0600">
<Parent guid="guidSHLMainMenu" id="IDM_VS_CTXT_ITEMNODE"/>
</Group>
<Group guid="guidCopyUEIncludeCommandPackageCmdSet" id="DocumentGroup" priority="0x0600">
<Parent guid="guidSHLMainMenu" id="IDM_VS_CTXT_CODEWIN"/>
</Group>
有人可以告诉我什么
id=
我需要在选项卡上下文中获取按钮吗?谢谢。
如果您想在文档窗口选项卡上下文菜单中放置一个按钮,即右键单击 VS 中打开的文件选项卡时出现的菜单,您可以按照以下步骤操作。
测试结果
查了以下文档,好像没有类似的
IDM_VS_CTXT_ITEMNODE
id 来获取Document Window
的id。
但是,我找到了一个解决方法:使用
EnableVSIPLogging
来识别菜单和命令,然后将按钮放置到特定位置。
1.在注册表中启用 VSIPLogging,EnableVSIPLogging 值将位于如下所示的键中(17.0 将有所不同,具体取决于您的设置):
Computer\HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\17.0_3d1fbd52\General
2.完成此操作后,您可以按住 CTRL+SHIFT 单击文档窗口选项卡,它将显示以下内容:
重要的值是 GUID 和 CommandID。
3.在 Symbols 下添加
Guid
和 Command ID
,以注册将 Guid 映射到 CommandSet 并将 CommandId 映射到上下文菜单值的命令集。
<GuidSymbol name="DocumentWindowCommandSet" value="{D309F791-903F-11D0-9EFC-00A0C911004F}">
<IDSymbol name="DocumentContextMenu" value="0x042b"/>
</GuidSymbol>
注意:该值映射到以十六进制值表示的
CommandID
。
4.然后在“组”部分中引用该组作为命令组 (MyMenuGroup) 的父组:
<Groups>
<Group guid="guidVSIXProject1PackageCmdSet" id="MyMenuGroup" priority="0x0600">
<Parent guid="DocumentWindowCommandSet" id="DocumentContextMenu"/>
</Group>
</Groups>
参考文档: