Partilhar via


Grupo de Menus

O Grupo de Menus organiza Comandos e controles relacionados dentro de um menu ou barra de ferramentas.

Introdução

O controle Menu Group, exposto por meio do elemento de marcaçãoMenuGroup, é um contêiner lógico para grupos de itens ou Comandos em controles baseados em menu, incluindo o Context Popup Mini-Toolbar.

Um rótulo pode ser especificado para um Grupo de Menus por meio do atributo LabelTitle ou 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 Command para um controle Split Button que inclui duas declarações Menu Group Command.

<!-- 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 elementoMenuGroup, duas das quais estão associadas aos comandos de grupo de menu 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 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 menu.

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

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

O IUICommandHandler::UpdateProperty método de retorno de chamada não é executado e o aplicativo consultado para obter 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 através do método IUIFramework::GetUICommandProperty e definida com o IUIFramework::SetUICommandProperty método.

 

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

Chave do imóvel Observações
UI_PKEY_Enabled Suporta IUIFramework::GetUICommandProperty e IUIFramework::SetUICommandProperty.
UI_PKEY_Keytip Só pode ser atualizado através de invalidação.
UI_PKEY_Label Só pode ser atualizado através de invalidação.
UI_PKEY_TooltipDescription Só pode ser atualizado através de invalidação.
UI_PKEY_TooltipTitle Só pode ser atualizado através de invalidação.

 

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

elemento de marcação MenuGroup