Compartilhar via


Adicionar um comando à barra de ferramentas do Gerenciador de Soluções

Este passo a passo mostra como adicionar um botão à barra de ferramentas do Gerenciador de Soluções.

Qualquer comando em uma barra de ferramentas ou menu é chamado de botão no Visual Studio. Quando o botão é clicado, o código no manipulador de comandos é executado. Normalmente, os comandos relacionados são agrupados para formar um grupo. Menus ou barras de ferramentas atuam como contêineres para grupos. A prioridade determina a ordem em que os comandos individuais em um grupo aparecem no menu ou na barra de ferramentas. Você pode impedir que um botão seja exibido na barra de ferramentas ou no menu controlando sua visibilidade. Um comando listado em uma <VisibilityConstraints> seção do arquivo .vsct aparece somente no contexto associado. A visibilidade não pode ser aplicada a grupos.

Para obter mais informações sobre menus, comandos da barra de ferramentas e arquivos .vsct, consulte Comandos, menus e barras de ferramentas.

Observação

Use arquivos de tabela de comando XML (.vsct) em vez de arquivos de configuração de tabela de comando (.ctc) para definir como menus e comandos aparecem em seus VSPackages. Para obter mais informações, consulte Tabela de comandos do Visual Studio (. Vsct).

Criar uma extensão com um comando de menu

Crie um projeto VSIX chamado SolutionToolbar. Adicione um modelo de item de comando de menu chamado ToolbarButton. Para obter informações sobre como fazer isso, consulte Criar uma extensão com um comando de menu.

Adicionar um botão à barra de ferramentas do Gerenciador de Soluções

Esta seção do passo a passo mostra como adicionar um botão à barra de ferramentas do Gerenciador de Soluções. Quando o botão é clicado, o código no método de retorno de chamada é executado.

  1. No arquivo ToolbarButtonPackage.vsct, vá para a <Symbols> seção . O <GuidSymbol> nó contém o grupo de menus e o comando que foi gerado pelo modelo de pacote. Adicione um <IDSymbol> elemento a esse nó para declarar o grupo que manterá seu comando.

    <IDSymbol name="SolutionToolbarGroup" value="0x0190"/>
    
  2. <Groups> Na seção , após a entrada de grupo existente, defina o novo grupo que você declarou na etapa anterior.

    <Group guid="guidToolbarButtonPackageCmdSet"
           id="SolutionToolbarGroup" priority="0xF000">
            <Parent guid="guidSHLMainMenu" id="IDM_VS_TOOL_PROJWIN"/>
          </Group>
    

    Definir o par GUID:ID pai como guidSHLMainMenu e coloca esse grupo na barra de ferramentas do Gerenciador de Soluções e IDM_VS_TOOL_PROJWIN definir um valor de alta prioridade o coloca depois dos outros grupos de comandos.

  3. <Buttons> Na seção , altere a ID pai da entrada gerada <Button> para refletir o grupo que você definiu na etapa anterior. O elemento modificado <Button> deve ter esta aparência:

    <Button guid="guidToolbarButtonPackageCmdSet" id="ToolbarButtonId" priority="0x0100" type="Button">
        <Parent guid="guidToolbarButtonPackageCmdSet" id="SolutionToolbarGroup" />
        <Icon guid="guidImages" id="bmpPicStrikethrough" />
        <Strings>
            <ButtonText>Invoke ToolbarButton</ButtonText>
        </Strings>
    </Button>
    
  4. Compile o projeto e comece a depuração. A instância experimental é exibida.

    A barra de ferramentas do Gerenciador de Soluções deve exibir o novo botão de comando à direita dos botões existentes. O ícone do botão é o tachado.

  5. Clique no novo botão.

    Uma caixa de diálogo que tem a mensagem ToolbarButtonPackage Inside SolutionToolbar.ToolbarButton.MenuItemCallback() deve ser exibida.

Controlar a visibilidade de um botão

Esta seção do passo a passo mostra como controlar a visibilidade de um botão em uma barra de ferramentas. Ao definir um contexto para um ou mais projetos na <VisibilityConstraints> seção do arquivo SolutionToolbar.vsct , você restringe um botão para aparecer somente quando um projeto ou projetos estão abertos.

Para exibir um botão quando um ou mais projetos estão abertos

  1. <Buttons> Na seção de ToolbarButtonPackage.vsct, adicione dois sinalizadores de comando ao elemento existente<Button>, entre as <Strings> marcas e <Icons> .

    <CommandFlag>DefaultInvisible</CommandFlag>
    <CommandFlag>DynamicVisibility</CommandFlag>
    

    Os DefaultInvisible sinalizadores e DynamicVisibility devem ser definidos para que as <VisibilityConstraints> entradas na seção possam entrar em vigor.

  2. Crie uma <VisibilityConstraints> seção que tenha duas <VisibilityItem> entradas. Coloque a nova seção logo após a tag de fechamento </Commands> .

    <VisibilityConstraints>
        <VisibilityItem guid="guidToolbarButtonPackageCmdSet"
              id="ToolbarButtonId"
              context="UICONTEXT_SolutionHasSingleProject" />
        <VisibilityItem guid="guidToolbarButtonPackageCmdSet"
              id="ToolbarButtonId"
              context="UICONTEXT_SolutionHasMultipleProjects" />
    </VisibilityConstraints>
    

    Cada item de visibilidade representa uma condição sob a qual o botão especificado é exibido. Para aplicar várias condições, você deve criar várias entradas para o mesmo botão.

  3. Compile o projeto e comece a depuração. A instância experimental é exibida.

    A barra de ferramentas do Gerenciador de Soluções não contém o botão tachado.

  4. Abra qualquer solução que contenha um projeto.

    O botão tachado aparece na barra de ferramentas à direita dos botões existentes.

  5. No menu Arquivo , clique em Fechar Solução. O botão desaparece da barra de ferramentas.

    A visibilidade do botão é controlada pelo Visual Studio até que o VSPackage é carregado. Depois que o VSPackage é carregado, a visibilidade do botão é controlada pelo VSPackage. Para obter mais informações, consulte MenuCommands vs. OleMenuCommands.