Share via


Grupo de Menus

O Grupo de Menus organiza comandos e controles relacionados em um menu ou barra de ferramentas.

Introdução

O controle Grupo de Menus, exposto por meio do elemento de marcação MenuGroup , é um contêiner lógico para grupos de itens ou Comandos em controles baseados em menu, incluindo a minibarra de ferramentas pop-tool do pop-up de contexto .

Um rótulo pode ser especificado para um Grupo de Menus por meio do atributo LabelTitle ou da propriedade Command.LabelTitle de uma declaração command associada. O valor atribuído a LabelTitle é renderizado como um cabeçalho de categoria.

O exemplo a seguir demonstra a marcação de comando para um controle Dividir Botão que inclui duas declarações de Comando de Grupo de Menus.

<!-- SplitButton -->
<Command Name="cmdSplitButtonGroup"
         Symbol="cmdSplitButtonGroup"
         Comment="SplitButton Group"
         LabelTitle="SplitButton"/>
<Command Name="cmdSplitButton"
         Symbol="cmdSplitButton"
         Comment="SplitButton"
         LabelTitle="SplitButton"/>
<Command Name="cmdSBButtonItem"
         Symbol="cmdSBButtonItem"
         Comment="SBButtonItem"
         LabelTitle="SB ButtonItem"/>
<Command Name="cmdSBButton1"
         Symbol="cmdSBButton1"
         Comment="SBButton1"
         LabelTitle="SB Button">
  <Command.LargeImages>
    <Image Source="res/copyL_32.bmp"/>
  </Command.LargeImages>
  <Command.SmallImages>
    <Image Source="res/copyS_16.bmp"/>
  </Command.SmallImages>
  <Command.LargeHighContrastImages>
    <Image Source="res/copyLHC_32.bmp"/>
  </Command.LargeHighContrastImages>
  <Command.SmallHighContrastImages>
    <Image Source="res/copySHC_16.bmp"/>
  </Command.SmallHighContrastImages>
</Command>
<Command Name="cmdSBMajorItems"
         Comment="Major Items Category"
         LabelTitle="Major Items"/>
<Command Name="cmdSBStandardItems"
         Comment="Standard Items Category"
         LabelTitle="Standard Items"/>

O exemplo a seguir demonstra a marcação necessária para um elemento SplitButton com três declarações de elemento MenuGroup , duas das quais estão associadas aos Comandos do Grupo de Menus do exemplo anterior. O atributo Class do elemento MenuGroup é usado para especificar o tamanho dos itens de menu.

<Group CommandName="cmdSplitButtonGroup">
  <SplitButton CommandName="cmdSplitButton">
    <SplitButton.ButtonItem>
      <Button CommandName="cmdSBButtonItem"/>
    </SplitButton.ButtonItem>
    <SplitButton.MenuGroups>
      <MenuGroup CommandName="cmdSBMajorItems" 
                 Class="MajorItems">
        <Button CommandName="cmdSBButton1"/>
        <Button CommandName="cmdSBButton1"/>
      </MenuGroup>
      <MenuGroup CommandName="cmdSBStandardItems"
                 Class="StandardItems">
        <Button CommandName="cmdSBButton1"/>
        <Button CommandName="cmdSBButton1"/>
      </MenuGroup>
      <MenuGroup Class="StandardItems">
        <Button CommandName="cmdSBButton1"/>
        <Button CommandName="cmdSBButton1"/>
      </MenuGroup>
    </SplitButton.MenuGroups>
  </SplitButton>
</Group>

A captura de tela a seguir ilustra o menu (com três controles do Grupo de Menus) gerado a partir da marcação nos exemplos anteriores.

captura de tela de um menu com três controles de grupo de menus.

A estrutura da Faixa de Opções define uma coleção de chaves de propriedade para o controle Grupo de Menus.

Normalmente, uma propriedade Grupo de Menus é atualizada na interface do usuário da faixa de opções invalidando o Comando associado ao controle por meio de uma chamada para o método IUIFramework::InvalidateUICommand . O evento de invalidação é tratado e as atualizações de propriedade definidas pelo método de retorno de chamada IUICommandHandler::UpdateProperty .

O método de retorno de chamada IUICommandHandler::UpdateProperty não é executado e o aplicativo consultou um valor de propriedade atualizado até que a propriedade seja exigida pela estrutura. Por exemplo, quando uma guia é ativada e um controle revelado na interface do usuário da faixa de opções ou quando uma dica de ferramenta é exibida.

Observação

Em alguns casos, uma propriedade pode ser recuperada por meio do método IUIFramework::GetUICommandProperty e definida com o método IUIFramework::SetUICommandProperty .

 

A tabela a seguir lista as chaves de propriedade associadas ao controle Grupo de Menus.

Chave de Propriedade Observações
UI_PKEY_Enabled Dá suporte a IUIFramework::GetUICommandProperty e IUIFramework::SetUICommandProperty.
UI_PKEY_Keytip Só pode ser atualizado por meio de invalidação.
UI_PKEY_Label Só pode ser atualizado por meio de invalidação.
UI_PKEY_TooltipDescription Só pode ser atualizado por meio de invalidação.
UI_PKEY_TooltipTitle Só pode ser atualizado por meio de invalidação.

 

Biblioteca de Controle da Estrutura da Faixa de Opções do Windows

Elemento de marcação MenuGroup