Partilhar via


Criação de páginas.Arquivos de VSCT

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

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

O arquivo de criação.

Crie um arquivo de .vsct in essas fases: criar a estrutura de arquivos e recursos, declarar os elementos da interface, colocar os elementos da interface no IDE e adicione quaisquer comportamentos especializados.

Estrutura de arquivos

A estrutura básica de um arquivo de .vsct é um CommandTable elemento raiz que contém um comandos elemento e uma símbolos elemento.

Para criar a estrutura de arquivo

  1. Adicionar um arquivo de .vsct ao seu projeto, seguindo as etapas em Como: criar um.Arquivo VSCT.

  2. Adicionar espaços para nome necessários para o CommandTable elemento, conforme mostrado no exemplo a seguir.

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

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

Inclusive os recursos de Visual Studio

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

Para incluir recursos de Visual Studio

  1. Na parte superior da CommandTable elemento, adicione um Extern elemento para cada arquivo externo ser referenciado e definir o href de atributo do nome do arquivo. Você pode referenciar os seguintes arquivos de cabeçalho para acessar os recursos de Visual Studio:

    • Stdidcmd.h, define os IDs para todos os comandos expostos pelo Visual Studio.

    • Vsshlids.h, contém IDs de comando para menus de Visual Studio.

    • Msobtnid.h, define outras constantes VSCT; Isso inclui os IDs de ícone padrão.

  2. Se o seu pacote chama os comandos que são definidos por Visual Studio ou por outros pacotes, adicione um UsedCommands elemento após o Commands elemento. Preencher este elemento com um UsedCommand elemento para cada comando que você chamar, ou seja, não faz parte do seu pacote. Definir o guid e id atributos da UsedCommand elementos para os valores GUID e ID dos comandos para chamar. Para obter mais informações sobre como localizar os comandos GUIDs e IDs de Visual Studio, consulte GUIDs e os IDs dos comandos de Visual Studio. Para chamar os comandos de outros pacotes, use o GUID e a identificação do comando conforme definido no arquivo .vsct para esses pacotes.

A declaração de elementos de interface do usuário

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

Para declarar os elementos de interface do usuário

  1. No Symbols elemento, adicionar três GuidSymbol elementos. Cada GuidSymbol elemento tem um name atributo e um value atributo. Definir o name de atributo para que reflita a finalidade do elemento. O value atributo tem um GUID. (Para gerar um GUID, sobre o Ferramentas menu, clique em Criar GUIDe selecione Formato do registro.)

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

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

    Para cada IDSymbol elemento, defina a name de atributo do nome que você usará para referir-se o menu correspondente, o grupo ou o comando e, em seguida, defina a value elemento em um número hexadecimal que representarão sua id de comando. Não existem dois IDSymbol elementos que têm o mesmo pai podem ter o mesmo valor.

  3. Se qualquer um dos seus elementos de interface do usuário necessitar de ícones, adicione um IDSymbol elemento para cada ícone para o GuidSymbol elemento que representa o armazenamento de imagens.

Colocando elementos de interface do usuário no IDE

O Menus elemento, grupos elemento, e botões elemento contêm as definições para todos os grupos, menus e comandos que são definidos em seu pacote. Coloque esses comandos, grupos e menus no IDE usando um pai elemento, que é parte da definição do elemento de interface do usuário, ou usando um CommandPlacement elemento que está definido em outro lugar.

Cada Menu, Group, e Button elemento tem um guid atributo e um id atributo. Sempre definido o guid atributo para coincidir com o nome da GuidSymbol elemento que representa o comando definir e definir o id de atributo do nome da IDSymbol elemento que representa seu menu, um grupo ou um comando no Symbols seção.

Para definir os elementos de interface do usuário

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

    Definir o guid e id atributos da Menu elemento e defina a type de atributo para o tipo de menu desejado. Você também pode definir o priority atributo para estabelecer a posição relativa do menu do grupo pai. Para obter mais informações, consulte Como: Criar Menus, SubMenus e Menus de atalho e Como: criar barras de ferramentas no IDE.

    Dica

    O priority atributo não é aplicada às barras de ferramentas e menus de contexto.

  2. Todos os comandos no IDE Visual Studio devem ser hospedados por grupos de comando, que sejam filhos diretos de menus e barras de ferramentas. Se você estiver adicionando novos menus ou barras de ferramentas ao IDE, elas devem conter novos grupos de comando. Você também pode adicionar grupos de comando para menus e barras de ferramentas existentes para que você pode agrupar visualmente seus comandos.

    Quando você adiciona novos grupos de comando, você deve primeiro criar um Groups elemento e em seguida, adicione a ele um grupo elemento para cada grupo de comando.

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

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

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

      Dica

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

    2. No Button elemento, adicione um seqüências de caracteres elemento que contém um texto de botão elemento e uma CommandName elemento. 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 para usar no comando bem.

    3. Se o seu comando terá um ícone, criar um ícone elemento no Button elemento e conjunto seu guid e id atributos ao Bitmap elemento para o ícone.

      Dica

      Botões da barra de ferramentas devem ter ícones.

    Para obter mais informações, consulte Como: criar e manipular comandos em VSPackages (C#).

  4. Se algum dos seus comandos exigem ícones, adicione um Bitmaps elemento para o Commands elemento. Em seguida, para cada ícone, adicione um Bitmap elemento para o Bitmaps elemento. Isso é onde você pode especificar o local do recurso de bitmap. Para obter mais informações, consulte Como: adicionar ícones para comandos nas barras de ferramentas.

Você pode contar com a estrutura de elevação de nível para posicionar corretamente a maioria dos menus, comandos e grupos. Para conjuntos de comandos muito grandes, ou quando um menu, o grupo ou o comando deve ser exibida em vários lugares, recomendamos que você especifique o posicionamento de comando.

Depender de elevação de nível para colocar os elementos de interface do usuário no IDE

  • Para elevação de nível típica, criar um Parent elemento em cada Menu, Group, e Command elemento que está definido no seu pacote.

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

    1. Definir o guid de atributo do nome da GuidSymbol elemento que define o conjunto de comandos. Se o elemento de destino não faz parte do seu pacote, use o guid para esse conjunto de comando, conforme definido no arquivo de .vsct correspondente.

    2. Definir o id atributo para coincidir com o id atributo do menu ' destino ' ou do grupo. Para obter uma listagem dos menus e grupos que são expostos por Visual Studio, consulte GUIDs e os IDs dos Menus de Visual Studio ou GUIDs e IDs de barras de ferramentas de Visual Studio.

Se você tiver um grande número de elementos de interface do usuário para colocar no IDE, ou se você tiver elementos que devem aparecer em vários lugares, definir suas posições no CommandPlacements elemento, conforme mostrado nas etapas a seguir.

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

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

  2. No CommandPlacements elemento, adicione um CommandPlacement elemento para cada menu, um grupo ou um comando para colocar.

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

  3. Definir o guid e id atributos de cada CommandPlacement elemento para o menu de hospedagem ou grupo, exatamente 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 o posicionamento de elevação de nível e posicionamento de comando. No entanto, para conjuntos de comandos muito grandes, recomendamos que você use somente a colocação de comando.

Adicionando comportamentos especializados

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

Para adicionar comportamentos especializados

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

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

    2. Para cada item de interface do usuário restringir, adicionar um VisibilityItem elemento.

    3. Para cada VisibilityItem elemento, defina a guid e id atributos para o menu, grupo, ou command e defina a context de atributo para o contexto de interface do usuário que desejar, conforme definido na UIContextGuids80 classe. Para obter mais informações, consulte Elemento de VisibilityItem.

  2. Para definir a visibilidade ou a disponibilidade de um item de 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 Elemento de sinalizador de comando.

  3. Para alterar como um elemento é exibido 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

    • TextoAltera

    • TextOnly

    Para obter mais informações, consulte Elemento de sinalizador de comando.

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

    • AllowParams

    • CaseSensitive

    • CommandWellOnly

    • Teclas de filtragem

    • NoAutoComplete

    • NoButtonCustomize

    • NoKeyCustomize

    • NoToolbarClose

    • PostExec

    • RouteToDocs

    • TextIsAnchorCommand

    Para obter mais informações, consulte Elemento de sinalizador de comando.

  5. Para anexar um atalho de teclado dependentes de menu a um menu ou um item em um menu, adicione um caractere e comercial ('e ') na ButtonText elemento para o menu ou item de menu. Caractere que segue o e comercial é o atalho de teclado ativo quando o menu pai estiver aberto.

  6. Para anexar um atalho de teclado do menu independente em um comando, use KeyBindings. Para obter mais informações, consulte Elemento KeyBinding.

  7. Para localizar o texto do menu, use o LocCanonicalName elemento. Para obter mais informações, consulte Elemento de seqüências de caracteres.

Alguns tipos de menu e botão incluem comportamentos especializados. A tabela a seguir descreve algumas menu especializado e os tipos de botões. Para outros tipos, consulte o types atributo descrições em Elemento menu, Elemento button, e Elemento de combinação.

  • "Caixa combo"
    Uma caixa de combinação é uma lista suspensa que pode ser usada em uma barra de ferramentas. Para adicionar caixas de combinação na interface do usuário, crie um Combos elemento a Commands elemento. Em seguida, adicione a Combos elemento uma Combo elemento para cada caixa de combinação adicionar. Comboelementos têm os mesmos atributos e filhos como Button elementos e também ter DefaultWidth e idCommandList atributos. O DefaultWidth atributo define a largura em pixels e o idCommandList pontos de atributo para um ID de comando é usado para preencher a caixa de combinação. Para obter mais informações, consulte o Combo a documentação do elemento.

  • MenuController
    Um controlador de menu é um botão que possui uma seta próxima a ele. Clicando na seta abre uma lista. Para adicionar um controlador de menu na interface do usuário, crie um Menu elemento e o conjunto de seus type de atributo para MenuController ou MenuControllerLatched, dependendo do comportamento desejado. Para preencher um controlador de menu, defina-o como pai de um Group elemento. O controlador de menu exibirá todos os filhos desse grupo em sua lista drop-down.

Consulte também

Conceitos

Referência de esquema XML VSCT

Outros recursos

Tarefas comuns com comandos, Menus e barras de ferramentas

Tabela Visual Studio de comando (.Arquivos de VSCT)