命令可用性
Visual Studio 上下文确定哪些命令可用。 上下文可能会根据当前项目、当前编辑器、已加载的 VSPackage 以及集成开发环境(IDE)的其他方面而更改。
命令上下文
以下命令上下文最为常见:
IDE:IDE 提供的命令始终可用。
VSPackage:VSPackage 可以定义何时显示或隐藏命令。
项目:项目命令仅针对当前选定的项目显示。
编辑器:一次只能有一个编辑器处于活动状态。 活动编辑器中的命令可用。 编辑器与语言服务密切合作。 语言服务必须在关联编辑器的上下文中处理其命令。
文件类型:编辑器可以加载多个类型的文件。 根据文件类型,可用的命令可能会更改。
活动窗口:最后一个活动文档窗口设置键绑定的用户界面(UI)上下文。 但是,具有类似于内部 Web 浏览器的键绑定表的工具窗口也可以设置 UI 上下文。 对于多选项卡式文档窗口(如 HTML 编辑器),每个选项卡都有不同的命令上下文 GUID。 注册工具窗口后,它始终可在“视图”菜单上使用。
UI 上下文:UI 上下文由类的值 VSConstants.UICONTEXT 标识,例如, SolutionBuilding_guid 生成解决方案时或 Debugging_guid 调试器处于活动状态时。 多个 UI 上下文可以同时处于活动状态。
定义自定义上下文 GUID
如果尚未定义适当的命令上下文 GUID,可以在 VSPackage 中定义一个,然后根据需要将其编程为活动或非活动状态,以控制命令的可见性:
通过调用 GetCmdUIContextCookie 该方法注册上下文 GUID。
通过调用 IsCmdUIContextActive 方法获取上下文 GUID 的状态。
通过调用 SetCmdUIContext 该方法打开和关闭上下文 GUID。
注意
请确保 VSPackage 不会影响任何现有的上下文 GUID,因为其他 VSPackage 可能依赖于它们。