Gruppo di menu

Il gruppo di menu organizza comandi e controlli correlati all'interno di un menu o di una barra degli strumenti.

Introduzione

Il controllo Gruppo di menu, esposto tramite l'elemento di markup MenuGroup , è un contenitore logico per gruppi di elementi o comandi nei controlli basati su menu, incluso il menu Popup Mini-Toolbar.

È possibile specificare un'etichetta per un gruppo di menu tramite l'attributo LabelTitle o la proprietà Command.LabelTitle di una dichiarazione Command associata. Il rendering del valore assegnato a LabelTitle viene eseguito come intestazione di categoria.

Nell'esempio seguente viene illustrato il markup Command per un controllo Pulsante di divisione che include due dichiarazioni di comando del gruppo di menu.

<!-- 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"/>

Nell'esempio seguente viene illustrato il markup necessario per un elemento SplitButton con tre dichiarazioni di elemento MenuGroup , due delle quali sono associate ai comandi del gruppo di menu dell'esempio precedente. L'attributo Class dell'elemento MenuGroup viene utilizzato per specificare le dimensioni delle voci di 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>

Lo screenshot seguente illustra il menu (con tre controlli Gruppo di menu) generato dal markup negli esempi precedenti.

screenshot di un menu con tre controlli gruppo di menu.

Il framework della barra multifunzione definisce una raccolta di chiavi di proprietà per il controllo Gruppo di menu.

In genere, una proprietà Gruppo di menu viene aggiornata nell'interfaccia utente della barra multifunzione invalidando il comando associato al controllo tramite una chiamata al metodo IUIFramework::InvalidateUICommand . L'evento di invalidazione viene gestito e le proprietà vengono aggiornate definite dal metodo di callback IUICommandHandler::UpdateProperty .

Il metodo di callback IUICommandHandler::UpdateProperty non viene eseguito e l'applicazione ha eseguito una query per un valore di proprietà aggiornato, fino a quando la proprietà non è richiesta dal framework. Ad esempio, quando viene attivata una scheda e viene visualizzato un controllo nell'interfaccia utente della barra multifunzione o quando viene visualizzata una descrizione comando.

Nota

In alcuni casi, una proprietà può essere recuperata tramite il metodo IUIFramework::GetUICommandProperty e impostata con il metodo IUIFramework::SetUICommandProperty .

 

Nella tabella seguente sono elencate le chiavi delle proprietà associate al controllo Gruppo di menu.

Chiave proprietà Note
UI_PKEY_Enabled Supporta IUIFramework::GetUICommandProperty e IUIFramework::SetUICommandProperty.
UI_PKEY_Keytip Può essere aggiornato solo tramite invalidazione.
UI_PKEY_Label Può essere aggiornato solo tramite invalidazione.
UI_PKEY_TooltipDescription Può essere aggiornato solo tramite invalidazione.
UI_PKEY_TooltipTitle Può essere aggiornato solo tramite invalidazione.

 

Libreria di controlli di Windows Ribbon Framework

Elemento di markup MenuGroup