命令可用性

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 中定义一个,然后根据需要将其编程为活动或非活动状态,以控制命令的可见性:

  1. 通过调用 GetCmdUIContextCookie 该方法注册上下文 GUID。

  2. 通过调用 IsCmdUIContextActive 方法获取上下文 GUID 的状态。

  3. 通过调用 SetCmdUIContext 该方法打开和关闭上下文 GUID。

注意

请确保 VSPackage 不会影响任何现有的上下文 GUID,因为其他 VSPackage 可能依赖于它们。