Partilhar via


Arquivos .vsct do autor

Este documento mostra como criar um arquivo .vsct para adicionar itens de menu, barras de ferramentas e outros elementos de interface do usuário (UI) para o ambiente de desenvolvimento integrado (IDE) do Visual Studio. Use essas etapas quando você adiciona elementos de interface do usuário a um pacote do Visual Studio (VSPackage) que ainda não tem um arquivo .vsct .

Para novos projetos, recomendamos que você use o modelo de pacote do Visual Studio porque ele gera um arquivo .vsct que, dependendo de suas seleções, já tem os elementos necessários para um comando de menu, uma janela de ferramenta ou um editor personalizado. Você pode modificar esse arquivo .vsct para atender aos requisitos do VSPackage. Para obter mais informações sobre como modificar um arquivo .vsct , consulte os exemplos em Estender menus e comandos.

Criar o arquivo

Crie um arquivo .vsct nestas fases: crie a estrutura para arquivos e recursos, declare os elementos da interface do usuário, coloque os elementos da interface do usuário no IDE e adicione quaisquer comportamentos especializados.

Estrutura do arquivo

A estrutura básica de um arquivo .vsct é um elemento raiz CommandTable que contém um elemento Commands e um elemento Symbols.

Para criar a estrutura de arquivos

  1. Adicione um arquivo .vsct ao seu projeto seguindo as etapas em Como: Criar um arquivo .vsct.

  2. Adicione os namespaces necessários ao CommandTable elemento , conforme mostrado no exemplo a seguir:

    <CommandTable xmlns="http://schemas.microsoft.com/VisualStudio/2005-10-18/CommandTable"
        xmlns:xs="http://www.w3.org/2001/XMLSchema">
    
    
  3. CommandTable No elemento , adicione um Commands elemento para hospedar todos os menus, barras de ferramentas, grupos de comandos e comandos personalizados. Para que os elementos personalizados da interface do usuário possam ser carregados, o elemento deve ter seu Package atributo definido como o Commands nome do pacote.

    Após o elemento , adicione um Symbols elemento para definir os GUIDs para o Commands pacote e os nomes e IDs de comando para os elementos da interface do usuário.

Incluir recursos do Visual Studio

Use o elemento Extern para acessar os arquivos que definem os comandos do Visual Studio e os menus necessários para colocar os elementos da interface do usuário no IDE. Se você usar comandos definidos fora do pacote, use o elemento UsedCommands para informar o Visual Studio.

Para incluir recursos do Visual Studio

  1. Na parte superior do CommandTable elemento, adicione um Extern elemento para cada arquivo externo a ser referenciado e defina o atributo como o href nome do arquivo. Você pode fazer referência aos seguintes arquivos de cabeçalho para acessar recursos do Visual Studio:

    • Stdidcmd.h: Define IDs para todos os comandos expostos pelo Visual Studio.

    • Vsshlids.h: Contém IDs de comando para menus do Visual Studio.

  2. Se o pacote chamar quaisquer comandos definidos pelo Visual Studio ou por outros pacotes, adicione um UsedCommands elemento após o Commands elemento . Preencha esse elemento com um elemento UsedCommand para cada comando chamado que não faz parte do pacote. Defina os atributos e dos elementos para os guid valores GUID e id ID dos UsedCommand comandos a serem chamados.

    Para obter mais informações sobre como localizar os GUIDs e IDs de comandos do Visual Studio, consulte GUIDs e IDs de comandos do Visual Studio. Para chamar comandos de outros pacotes, use o GUID e a ID do comando, conforme definido no arquivo .vsct para esses pacotes.

Declarar elementos da interface do usuário

Declare todos os novos elementos da interface do Symbols usuário na seção do arquivo .vsct .

Para declarar elementos da interface do usuário

  1. Symbols No elemento , adicione três elementos GuidSymbol. Cada GuidSymbol elemento tem um atributo e um value name atributo. Defina o name atributo para que ele reflita a finalidade do elemento. O value atributo usa um GUID. (Para gerar um GUID, no Menu Ferramentas, selecione Criar GUID e, em seguida, selecione Formato do Registro.)

    O primeiro GuidSymbol elemento representa seu pacote e, normalmente, não tem filhos. O segundo GuidSymbol elemento representa o conjunto de comandos e conterá todos os símbolos que definem seus menus, grupos e comandos. O terceiro GuidSymbol elemento representa seu armazenamento de imagens e contém símbolos para todos os ícones de seus comandos. Se você não tiver comandos que usam ícones, poderá omitir o terceiro GuidSymbol elemento.

  2. No elemento que representa seu GuidSymbol conjunto de comandos, adicione um ou mais elementos IDSymbol . Cada um deles representa um menu, barra de ferramentas, grupo ou comando que você está adicionando à interface do usuário.

    Para cada IDSymbol elemento, defina o atributo como o nome que você usará para fazer referência ao menu, grupo ou comando correspondente e, em seguida, defina o name value elemento como um número hexadecimal que representará sua ID de comando. Nenhum elemento IDSymbol que tenha o mesmo pai pode ter o mesmo valor.

  3. Se qualquer um dos elementos da interface do usuário exigir ícones, adicione um IDSymbol elemento para cada ícone ao elemento que representa seu GuidSymbol repositório de imagens.

Colocar elementos da interface do usuário no IDE

Os elementos Menus, Groups e Buttons contêm as definições de todos os menus, grupos e comandos definidos no pacote. Coloque esses menus, grupos e comandos no IDE usando um elemento Parent que faz parte da definição do elemento UI ou usando um elemento CommandPlacement definido em outro lugar.

Cada Menuelemento , Groupe tem um atributo e Button um guid id atributo. Sempre defina o atributo para corresponder ao nome do elemento que representa seu GuidSymbol conjunto de comandos e defina o atributo como o guid id nome do IDSymbol elemento que representa seu menu, grupo ou comando na Symbols seção.

Para definir elementos da interface do usuário

  1. Se você estiver definindo novos menus, submenus, menus de atalho ou barras de ferramentas, adicione um Menus elemento ao Commands elemento. Em seguida, para cada menu a ser criado, adicione um elemento Menu ao Menus elemento .

    Defina os guid atributos e id do Menu elemento e, em seguida, defina o atributo para o type tipo de menu desejado. Você também pode definir o priority atributo para estabelecer a posição relativa do menu no grupo pai.

    Observação

    O priority atributo não se aplica a barras de ferramentas e menus de contexto.

  2. Todos os comandos no IDE do Visual Studio devem ser hospedados por grupos de comandos, que são os filhos diretos de menus e barras de ferramentas. Se você estiver adicionando novos menus ou barras de ferramentas ao IDE, eles deverão conter novos grupos de comandos. Você também pode adicionar grupos de comandos a menus e barras de ferramentas existentes para que você possa agrupar visualmente seus comandos.

    Ao adicionar novos grupos de comandos, você deve primeiro criar um elemento e, em seguida, adicionar a ele um Groups elemento Group para cada grupo de comandos.

    Defina os guid atributos e id de cada Group elemento e, em seguida, defina o priority atributo para estabelecer a posição relativa do grupo no menu pai. Para obter mais informações, consulte Criar grupos reutilizáveis de botões.

  3. Se você estiver adicionando novos comandos ao IDE, adicione um Buttons elemento ao Commands elemento . Em seguida, para cada comando, adicione um elemento Button ao Buttons elemento.

    1. Defina os guid atributos e id de cada Button elemento e, em seguida, defina o atributo para o type tipo de botão desejado. Você também pode definir o priority atributo para estabelecer a posição relativa do comando no grupo pai.

      Observação

      Use type="button" para comandos de menu padrão e botões em barras de ferramentas.

    2. Button No elemento , adicione um elemento Strings que contém um elemento ButtonText e um elemento CommandName. O ButtonText elemento fornece o rótulo de texto para um item de menu ou a dica de ferramenta para um botão da barra de ferramentas. O CommandName elemento fornece o nome do comando a ser usado no comando bem.

    3. Se o comando tiver um ícone, crie um elemento Icon no Button elemento e defina seus guid atributos e id atributos para o elemento para o Bitmap ícone.

      Observação

      Os botões da barra de ferramentas devem ter ícones.

    Para obter mais informações, consulte MenuCommands vs. OleMenuCommands.

  4. Se qualquer um dos comandos exigir ícones, adicione um elemento Bitmaps ao Commands elemento. Em seguida, para cada ícone, adicione um elemento Bitmap ao Bitmaps elemento. É aqui que você especifica o local do recurso de bitmap. Para obter mais informações, consulte Adicionar ícones a comandos de menu.

    Você pode confiar na estrutura pai para colocar corretamente a maioria dos menus, grupos e comandos. Para conjuntos de comandos muito grandes, ou quando um menu, grupo ou comando deve aparecer em vários lugares, recomendamos que você especifique o posicionamento do comando.

Para confiar na criação de pais para colocar elementos da interface do usuário no IDE

  1. Para parentalidade típica, crie um Parent elemento em cada Menuelemento , Groupe Command que é definido em seu pacote.

    O destino do Parent elemento é o menu ou grupo que conterá o menu, grupo ou comando.

    1. Defina o atributo como o nome do elemento que define o guid conjunto de GuidSymbol comandos. Se o elemento de destino não fizer parte do pacote, use o guid para esse conjunto de comandos, conforme definido no arquivo .vsct correspondente.

    2. Defina o id atributo para corresponder ao id atributo do menu ou grupo de destino. Para obter uma lista dos menus e grupos que são expostos pelo Visual Studio, consulte GUIDs e IDs de menus do Visual Studio ou GUIDs e IDs de barras de ferramentas do Visual Studio.

    Se você tiver um grande número de elementos da interface do usuário para colocar no IDE, ou se tiver elementos que devem aparecer em vários lugares, defina seus posicionamentos no elemento CommandPlacements , conforme mostrado nas etapas a seguir.

Para usar o posicionamento do comando para colocar elementos da interface do usuário no IDE

  1. Após o elemento Commands, adicione um elemento CommandPlacements.

  2. CommandPlacements No elemento , adicione um CommandPlacement elemento para cada menu, grupo ou comando a ser colocado.

    Cada CommandPlacement elemento ou elemento coloca um menu, grupo ou Parent comando em um local do IDE. Um elemento da interface do usuário só pode ter um pai, mas pode ter vários posicionamentos de comando. Para colocar um elemento de interface do usuário em vários locais, adicione um CommandPlacement elemento para cada local.

  3. Defina os guid atributos e id de cada CommandPlacement elemento para o menu ou grupo de hospedagem, assim como faria para um Parent elemento. Você também pode definir o priority atributo para estabelecer a posição relativa do elemento da interface do usuário.

    Você pode misturar posicionamento por posicionamento de pai e posicionamento de comando. No entanto, para conjuntos de comandos muito grandes, recomendamos que você use apenas o posicionamento de comando.

Adicionar comportamentos especializados

Você pode usar o elemento CommandFlag para modificar o comportamento de menus e comandos, por exemplo, para alterar sua aparência e visibilidade. Você também pode afetar quando um comando está visível usando o elemento VisibilityConstraints ou adicionar atalhos de teclado usando o elemento KeyBindings. Certos tipos de menus e comandos já têm comportamentos especializados incorporados.

Para adicionar comportamentos especializados

  1. Para tornar um elemento da interface do usuário visível apenas em determinados contextos de interface do usuário, por exemplo, quando uma solução é carregada, use restrições de visibilidade.

    1. Após o elemento Commands, adicione um elemento VisibilityConstraints.

    2. Para cada item da interface do usuário a ser restringido, adicione um elemento VisibilityItem .

    3. Para cada VisibilityItem elemento, defina os guid atributos e id para o menu, grupo ou comando e, em seguida, defina o atributo para o context contexto de interface do usuário desejado, conforme definido na UIContextGuids80 classe.

  2. Para definir a visibilidade ou a disponibilidade de um item da interface do usuário no código, use um ou mais dos seguintes sinalizadores de comando:

    • DefaultDisabled

    • DefaultInvisible

    • DynamicItemStart

    • DynamicVisibility

    • NoShowOnMenuController

    • NotInTBList

    Para obter mais informações, consulte o elemento CommandFlag .

  3. Para alterar a aparência de um elemento ou alterar sua aparência dinamicamente, use um ou mais dos seguintes sinalizadores de comando:

    • AlwaysCreate

    • CommandWellOnly

    • DefaultDocked

    • DontCache

    • DynamicItemStart

    • FixMenuController

    • IconAndText

    • Pict

    • StretchHorizontally

    • TextMenuUseButton

    • TextChanges

    • TextOnly

    Para obter mais informações, consulte o elemento CommandFlag .

  4. Para alterar como um elemento reage quando recebe comandos, use um ou mais dos seguintes sinalizadores de comando:

    • AllowParams

    • CaseSensitive

    • CommandWellOnly

    • FilterKeys

    • NoAutoComplete

    • NoButtonCustomize

    • NoKeyCustomize

    • NoToolbarClose

    • PostExec

    • RouteToDocs

    • TextIsAnchorCommand

    Para obter mais informações, consulte o elemento CommandFlag .

  5. Para anexar um atalho de teclado dependente de menu a um menu ou a um item em um menu, adicione um caractere e comercial (&) no elemento do ButtonText menu ou item de menu. O caractere que segue o e comercial é o atalho de teclado ativo quando o menu pai está aberto.

  6. Para anexar um atalho de teclado independente de menu a um comando, use o elemento KeyBindings . Para obter mais informações, consulte o elemento KeyBinding .

  7. Para localizar o texto do menu, use o LocCanonicalName elemento . Para obter mais informações, consulte o elemento Strings .

    Alguns tipos de menu e botão incluem comportamentos especializados. A lista a seguir descreve alguns tipos de menu e botão especializados. Para outros tipos, consulte as types descrições de atributo nos elementos Menu, Button e Combo .

    • Caixa de combinação: uma caixa de combinação é uma lista suspensa que pode ser usada em uma barra de ferramentas. Para adicionar caixas de combinação à interface do usuário, crie um elemento Combos no Commands elemento . Em seguida, adicione ao Combos elemento um Combo elemento para cada caixa de combinação a ser adicionada. Combo elementos têm os mesmos atributos e filhos como Button elementos e também têm DefaultWidth e idCommandList atributos. O DefaultWidth atributo define a largura em pixels e o idCommandList atributo aponta para uma ID de comando usada para preencher a caixa de combinação.

    • Controlador de menu: Um controlador de menu é um botão que tem uma seta ao lado. Clicar na seta abre uma lista. Para adicionar um controlador de menu à interface do usuário, crie um Menu elemento e defina seu type atributo como MenuController ou MenuControllerLatched, dependendo do comportamento desejado. Para preencher um controlador de menu, defina-o como o pai de um Group elemento. O controlador de menu exibirá todos os filhos desse grupo em sua lista suspensa.