Disponibilidade do comando
O contexto do Visual Studio determina quais comandos estão disponíveis. O contexto pode mudar dependendo do projeto atual, do editor atual, dos VSPackages carregados e de outros aspectos do ambiente de desenvolvimento integrado (IDE).
Contextos de comando
Os seguintes contextos de comando são os mais comuns:
IDE: Os comandos fornecidos pelo IDE estão sempre disponíveis.
VSPackage: VSPackages podem definir quando os comandos devem ser exibidos ou ocultos.
Projeto: os comandos do projeto aparecem somente para o projeto selecionado no momento.
Editor: Apenas um editor pode estar ativo por vez. Comandos do editor ativo estão disponíveis. Um editor trabalha em estreita colaboração com um serviço linguístico. O serviço de idioma deve processar seus comandos no contexto do editor associado.
Tipo de arquivo: Um editor pode carregar mais de um tipo de arquivo. Os comandos disponíveis podem mudar dependendo do tipo de arquivo.
Janela ativa: a última janela de documento ativo define o contexto da interface do usuário (UI) para associações de chave. No entanto, uma janela de ferramenta que tenha uma tabela de vinculação de chave semelhante ao navegador da Web interno também pode definir o contexto da interface do usuário. Para janelas de documento com várias guias, como o editor de HTML, cada guia tem um GUID de contexto de comando diferente. Depois que uma janela de ferramenta é registrada, ela está sempre disponível no menu Exibir .
Contexto da interface do usuário: os contextos da interface do usuário são identificados pelos valores da VSConstants.UICONTEXT classe, por exemplo, SolutionBuilding_guid quando a solução está sendo criada ou Debugging_guid quando o depurador está ativo. Vários contextos de interface do usuário podem estar ativos ao mesmo tempo.
Definir GUIDs de contexto personalizados
Se um GUID de contexto de comando apropriado ainda não estiver definido, você poderá definir um em seu VSPackage e, em seguida, programá-lo para estar ativo ou inativo conforme necessário para controlar a visibilidade de seus comandos:
Registre GUIDs de contexto chamando o GetCmdUIContextCookie método.
Obtenha o estado de um GUID de contexto chamando o IsCmdUIContextActive método.
Ative e desative os GUIDs de contexto chamando o SetCmdUIContext método.
Cuidado
Certifique-se de que seu VSPackage não afeta nenhum GUID de contexto existente porque outros VSPackages podem depender deles.