adicionar um menu à barra de menus Visual Studio

este tutorial mostra como adicionar um menu à barra de menus do Visual Studio IDE (ambiente de desenvolvimento integrado). A barra de menus do IDE contém categorias de menu, como arquivo, Editar, Exibir, janela e ajuda.

antes de adicionar um novo menu à barra de menus do Visual Studio, considere se os comandos devem ser colocados em um menu existente. Para obter mais informações sobre o posicionamento do comando, consulte menus e comandos para Visual Studio.

Os menus são declarados no arquivo . vsct do projeto. Para obter mais informações sobre menus e arquivos . vsct , consulte comandos, menus e barras de ferramentas.

Ao concluir este passo a passos, você pode criar um menu chamado menu de teste que contém um comando.

Observação

a partir do Visual Studio 2019, os menus de nível superior contribuídos por extensões são colocados no menu extensões .

Pré-requisitos

a partir do Visual Studio 2015, você não instala o SDK do Visual Studio do centro de download. ele é incluído como um recurso opcional na instalação do Visual Studio. Você também pode instalar o SDK do VS mais tarde. para obter mais informações, consulte instalar o SDK do Visual Studio.

Criar um projeto VSIX que tenha um modelo de item de comando personalizado

  1. Crie um projeto VSIX denominado TopLevelMenu . você pode encontrar o modelo de projeto VSIX na caixa de diálogo novo Project pesquisando por "VSIX". Para obter mais informações, consulte criar uma extensão com um comando de menu.
  1. Quando o projeto for aberto, adicione um modelo de item de comando personalizado chamado TestCommand. Na Gerenciador de soluções, clique com o botão direito do mouse no nó do projeto e selecione Adicionar > novo item. Na caixa de diálogo Adicionar novo item , vá para Visual C#/extensibilidade e selecione comando personalizado. No campo nome na parte inferior da janela, altere o nome do arquivo de comando para TestCommand. cs.
  1. Quando o projeto for aberto, adicione um modelo de item de comando personalizado chamado TestCommand. Na Gerenciador de soluções, clique com o botão direito do mouse no nó do projeto e selecione Adicionar > novo item. Na caixa de diálogo Adicionar novo item , vá para Visual C#/extensibilidade e selecione comando. No campo nome na parte inferior da janela, altere o nome do arquivo de comando para TestCommand. cs.

Criar um menu na barra de menus do IDE

  1. Em Gerenciador de soluções, abra TestCommandPackage. vsct.

    No final do arquivo, há um <Symbols> nó que contém vários <GuidSymbol> nós. No nó chamado guidTestCommandPackageCmdSet , adicione um novo símbolo, da seguinte maneira:

    <IDSymbol name="TopLevelMenu" value="0x1021"/>
    
  2. Crie um <Menus> nó vazio no <Commands> nó, logo antes de <Groups> . No <Menus> nó, adicione um <Menu> nó, da seguinte maneira:

    <Menus>
          <Menu guid="guidTestCommandPackageCmdSet" id="TopLevelMenu" priority="0x700" type="Menu">
            <Parent guid="guidSHLMainMenu"
                    id="IDG_VS_MM_TOOLSADDINS" />
            <Strings>
              <ButtonText>Test Menu</ButtonText>
            </Strings>
        </Menu>
    </Menus>
    

    Os guid id valores e do menu especificam o conjunto de comandos e o menu específico no conjunto de comandos.

    os guid id valores e do pai posicionam o menu na seção da barra de menus Visual Studio que contém os menus ferramentas e suplementos.

    O <ButtonText> elemento Especifica que o texto deve aparecer no item de menu.

  3. Na <Groups> seção, localize <Group> e altere o <Parent> elemento para apontar para o menu que acabamos de adicionar:

    <Groups>
        <Group guid="guidTestCommandPackageCmdSet" id="MyMenuGroup" priority="0x0600">
            <Parent guid="guidTestCommandPackageCmdSet" id="TopLevelMenu"/>
        </Group>
    </Groups>
    

    Isso faz com que o grupo faça parte do novo menu.

  1. Em Gerenciador de soluções, abra TopLevelMenuPackage. vsct.

    No final do arquivo, há um <Symbols> nó que contém vários <GuidSymbol> nós. No nó chamado guidTopLevelMenuPackageCmdSet , adicione um novo símbolo, da seguinte maneira:

    <IDSymbol name="TopLevelMenu" value="0x1021"/>
    
  2. Crie um <Menus> nó vazio no <Commands> nó, logo antes de <Groups> . No <Menus> nó, adicione um <Menu> nó, da seguinte maneira:

    <Menus>
          <Menu guid="guidTopLevelMenuPackageCmdSet" id="TopLevelMenu" priority="0x700" type="Menu">
            <Parent guid="guidSHLMainMenu"
                    id="IDG_VS_MM_TOOLSADDINS" />
            <Strings>
              <ButtonText>Test Menu</ButtonText>
            </Strings>
        </Menu>
    </Menus>
    

    Os guid id valores e do menu especificam o conjunto de comandos e o menu específico no conjunto de comandos.

    os guid id valores e do pai posicionam o menu na seção da barra de menus Visual Studio que contém os menus ferramentas e suplementos.

    O <ButtonText> elemento Especifica que o texto deve aparecer no item de menu.

  3. Na <Groups> seção, localize <Group> e altere o <Parent> elemento para apontar para o menu que acabamos de adicionar:

    <Groups>
        <Group guid="guidTopLevelMenuPackageCmdSet" id="MyMenuGroup" priority="0x0600">
            <Parent guid="guidTopLevelMenuPackageCmdSet" id="TopLevelMenu"/>
        </Group>
    </Groups>
    

    Isso faz com que o grupo faça parte do novo menu.

  1. Na <Buttons> seção, localize o <Button> nó. Em seguida, no <Strings> nó, altere o <ButtonText> elemento para Test Command .

    Observe que o Visual Studio modelo de pacote gerou um Button elemento que tem seu pai definido como MyMenuGroup . Como resultado, esse comando aparece no menu.

Compilar e testar a extensão

  1. Compile o projeto e comece a depuração. Uma instância da instância experimental deve aparecer.
  1. A barra de menus na instância experimental deve conter um menu de menu de teste .
  1. O menu extensões na instância experimental deve conter um menu de menu de teste .
  1. No menu de menu testar , selecione comando de teste.

    Uma caixa de mensagem deve aparecer e exibir a mensagem "TestCommand Inside TopLevelMenu. TestCommand. MenuItemCallback ()".

Confira também