Como: adicionar controladores de Menu para barras de ferramentas
Um controlador de menu aparece uma barra de ferramentas, como um botão que tem uma seta suspensa próxima a ele. Quando um usuário clica o controlador de menu, é exibido um menu que contém os grupos que têm a controladora de menu como pai. São dois exemplos de controladores de menu em Visual Studio a Localizar caixa na barra de ferramentas principal e o seletor de objeto no topo da Propriedades janela.
Quando um usuário clica em um comando na lista suspensa que está anexado a um controlador de menu, o comando é executado e o nome do comando é exibido no botão menu controlador. Para executar o comando novamente, o usuário pode simplesmente clique no botão.
Dica
Embora você pode colocar um controlador de menu em um menu, recomendamos que você use um submenu em vez disso, porque é mais fácil de implementar e é mais consistente com interfaces de usuário comum.
Controladores de menu têm as seguintes características:
O ícone e o texto do primeiro comando visível na lista suspensa é exibida no botão menu controlador.
Quando um comando na lista drop-down é clicado, o ícone e texto para esse comando é exibido no botão.
O ícone ou o texto de um comando, ou ambos, pode ser exibido.
O botão pode ser configurado para executar o mesmo comando sempre que ele for clicado. Nesse caso, quando um usuário clica em um comando na lista drop-down, ele é executado, mas seu nome não será exibido no botão.
Para modificar essas características, aplica sinalizadores no arquivo .vsct no qual o controlador de menu é definido. Para obter mais informações, consulte Tabela Visual Studio de comando (.Arquivos de VSCT).
Criando um controlador de Menu
Para criar e adicionar um controlador de menu
Criar um projeto VSPackage ou abrir um projeto existente VSPackage que inclui um arquivo .vsct.
Abra o arquivo de .vsct no editor.
Na seção que é formada pela Elemento de símbolos, encontrar o Elemento de GuidSymbol que contém seus menus, grupos e comandos. Por padrão, ele é denominado guid<ProjectName>CmdSet.
Conforme mostrado no exemplo a seguir, adicione um Elemento de IDSymbol para seu controlador de menu, cada comando que ele hospedará e um ou mais grupos conter os comandos.
<IDSymbol name="TestMenuController" value="0x1300" /> <IDSymbol name="TestMenuControllerGroup" value="0x1060" /> <IDSymbol name="cmdidMCItem1" value="0x0130" /> <IDSymbol name="cmdidMCItem2" value="0x0131" /> <IDSymbol name="cmdidMCItem3" value="0x0132" />
In the Elemento de comandos, create a Menus Element.
No Menus elemento, defina o seu controlador de menu como um menu, da seguinte maneira.
Definir o guid e id atributos para o GUID:ID do novo controlador de menu.
O par de GUID:ID é formado pela name atributos da GuidSymbol e IDSymbol elementos na definição de controlador menu na Symbols seção.
Definir o priority atributo para determinar a posição do controlador de menu em seu grupo pai.
Definir o type para o atributoMenuController ou MenuControllerLatched.
O valor de MenuController significa que o controlador de menu exibe inicialmente o primeiro comando visível.
O valor de MenuControllerLatched significa que o controlador de menu usa o primeiro comando visível que está selecionado como o comando inicialmente exibida. Se o comando não estiver selecionado, o primeiro comando visível é exibido.
No Menu elemento, criar um Elemento pai e defina seu guid e id atributos para o GUID:ID do grupo que irá hospedar o controlador do menu. Isso pode ser um grupo de Visual Studio existente, como, por exemplo, guidStdEditor:IDG_VS_EDITTOOLBAR_COMMENT, que contém o comentário e Remover comentário botões na barra de ferramentas do editor, ou ele podem ser um grupo definido pelo usuário.
Você pode omitir a Parent elemento se o controlador de menu usando o posicionamento do comando será colocado. Para habilitá-los, antes de Symbols seção, criar um Elemento de CommandPlacements. Adicionar um Elemento de CommandPlacement que tem o GUID:ID de um pai, uma prioridade e o controlador do menu.
Várias posições de comando que tem o mesmo GUID:ID, mas pais diferentes faz com que um controlador de menu seja exibido em vários locais. Para obter mais informações, consulte Elemento de CommandPlacements e Como: criar grupos reutilizáveis de botões.
Após o pai, use o Elemento de seqüências de caracteres para criar uma seção que contém um Elemento de texto de botão e um Elemento CommandName. O ButtonText elemento é usado para definir o nome da barra de ferramentas, como ele aparece no IDE. O CommandName elemento é usado para definir o nome do comando que pode ser digitado na comando janela para acessar a barra de ferramentas.
O exemplo a seguir define um controlador de menu.
<Menu guid="guidTWToolbarCmdSet" id="TestMenuController" priority="0x0100" type="MenuController"> <Parent guid="guidTWToolbarCmdSet" id="TWToolbarGroup" /> <CommandFlag>IconAndText</CommandFlag> <CommandFlag>TextChanges</CommandFlag> <CommandFlag>TextIsAnchorCommand</CommandFlag> <Strings> <ButtonText>Test Menu Controller</ButtonText> <CommandName>Test Menu Controller</CommandName> </Strings> </Menu>
No Elemento de grupos, criar um Elemento de grupo para conter os comandos que você deseja que apareça no seu controlador de menu.
Defina a prioridade do grupo para determinar onde ela será exibida no seu controlador de menu se houver vários grupos.
Defina o pai do grupo para o GUID:ID do controlador de menu.
O grupo a seguir é exibida no controlador de menu do exemplo anterior.
<Group guid="guidTWToolbarCmdSet" id="TestMenuControllerGroup" priority="0x000"> <Parent guid="guidTWToolbarCmdSet" id="TestMenuController" /> </Group>
No Elemento de botões, adicione um Elemento button para cada comando que você deseja adicionar ao controlador de menu. Cada comando deve especificar como seu pai um grupo no controlador de menu, conforme mostrado no exemplo a seguir.
<Button guid="guidTWToolbarCmdSet" id="cmdidMCItem1" priority="0x0000" type="Button"> <Parent guid="guidTWToolbarCmdSet" id="TestMenuControllerGroup" /> <Icon guid="guidImages" id="bmpPic1" /> <CommandFlag>IconAndText</CommandFlag> <Strings> <ButtonText>MC Item 1</ButtonText> <CommandName>MC Item 1</CommandName> </Strings> </Button> <Button guid="guidTWToolbarCmdSet" id="cmdidMCItem2" priority="0x0100" type="Button"> <Parent guid="guidTWToolbarCmdSet" id="TestMenuControllerGroup" /> <Icon guid="guidImages" id="bmpPic2" /> <CommandFlag>IconAndText</CommandFlag> <Strings> <ButtonText>MC Item 2</ButtonText> <CommandName>MC Item 2</CommandName> </Strings> </Button> <Button guid="guidTWToolbarCmdSet" id="cmdidMCItem3" priority="0x0200" type="Button"> <Parent guid="guidTWToolbarCmdSet" id="TestMenuControllerGroup" /> <Icon guid="guidImages" id="bmpPicSearch" /> <CommandFlag>IconAndText</CommandFlag> <Strings> <ButtonText>MC Item 3</ButtonText> <CommandName>MC Item 3</CommandName> </Strings> </Button>
Para forçar o botão do controlador de menu para exibir o mesmo comando toda vez que ele for clicado, defina a FixMenuController sinalizador no comando.
O Parent elemento pode ser omitido para comandos que serão colocados usando o posicionamento de comando.
Consulte também
Tarefas
Passo a passo: Adicionando um controlador de Menu para uma barra de ferramentas.
Conceitos
Referência de esquema XML VSCT
Outros recursos
Explicações passo a passo para comandos, Menus e barras de ferramentas