我有一个 VSPackage,其中一些命令在 Initialize() 函数中注册,并且可以使用工具栏/菜单/快捷键全局访问。此 VSPackage 还有一个工具窗口(派生自 ToolWindowPane),类似于解决方案资源管理器,其命令在 OnCreate() 中注册。当工具窗口处于活动状态/处于焦点时,工具窗口命令也可以通过工具栏/菜单/快捷键正常工作。但是当它隐藏在另一个窗口(例如解决方案资源管理器)后面时,工具窗口命令将无法访问。
请让我知道如何使非活动工具窗口命令可访问。
我找到了解决方案:应该首先将命令处理程序添加到主包,然后添加到 ToolWindow,否则 ToolWindow 命令只有在获得焦点时才会起作用。
请参考VSSDK IDE 示例的PersistedWindowPane.cs和PackageToolWindow.cs中的函数 DefineCommandHandler()。