Menügruppe

Die Menügruppe organisiert verwandte Befehle und Steuerelemente innerhalb eines Menüs oder einer Symbolleiste.

Einführung

Das Menügruppen-Steuerelement, das über das MenuGroup-Markupelement verfügbar gemacht wird, ist ein logischer Container für Gruppen von Elementen oder Befehle in menübasierten Steuerelementen, einschließlich der Kontext-Popup-Minisymbolleiste.

Eine Bezeichnung kann für eine Menügruppe über das LabelTitle-Attribut oder die Command.LabelTitle-Eigenschaft einer zugeordneten Command-Deklaration angegeben werden. Der LabelTitle zugewiesene Wert wird als Kategorieheader gerendert.

Im folgenden Beispiel wird das Befehlsmarkup für ein Steuerelement "Schaltfläche teilen" veranschaulicht, das zwei Befehlsdeklarationen für Menügruppen enthält.

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

Im folgenden Beispiel wird das Markup veranschaulicht, das für ein SplitButton-Element mit drei MenuGroup-Elementdeklarationen erforderlich ist, von denen zwei den Menügruppenbefehlen aus dem vorherigen Beispiel zugeordnet sind. Das Class-Attribut des MenuGroup-Elements wird verwendet, um die Größe der Menüelemente anzugeben.

<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>

Der folgende Screenshot veranschaulicht das Menü (mit drei Menügruppen-Steuerelementen), das aus dem Markup in den vorherigen Beispielen generiert wird.

Screenshot eines Menüs mit drei Menügruppensteuerelementen.

Das Menübandframework definiert eine Auflistung von Eigenschaftsschlüsseln für das Menügruppen-Steuerelement.

In der Regel wird eine Menügruppeneigenschaft auf der Menübandbenutzeroberfläche aktualisiert, indem der dem Steuerelement zugeordnete Befehl durch einen Aufruf der IUIFramework::InvalidateUICommand-Methode ungültig wird. Das Invalidierungsereignis wird von der IUICommandHandler::UpdateProperty-Rückrufmethode behandelt und die Eigenschaft aktualisiert.

Die IUICommandHandler::UpdateProperty-Rückrufmethode wird nicht ausgeführt, und die Anwendung fragt einen aktualisierten Eigenschaftswert ab, bis die Eigenschaft vom Framework benötigt wird. Beispielsweise, wenn eine Registerkarte aktiviert und ein Steuerelement auf der Menüband-Benutzeroberfläche angezeigt wird oder wenn eine QuickInfo angezeigt wird.

Hinweis

In einigen Fällen kann eine Eigenschaft über die IUIFramework::GetUICommandProperty-Methode abgerufen und mit der IUIFramework::SetUICommandProperty-Methode festgelegt werden.

In der folgenden Tabelle sind die Eigenschaftenschlüssel aufgeführt, die dem Menügruppen-Steuerelement zugeordnet sind.

Eigenschaftenschlüssel Notizen
_Benutzeroberflächen-PKEY _ aktiviert Unterstützt IUIFramework::GetUICommandProperty und IUIFramework::SetUICommandProperty.
_PKEY-Keytip der Benutzeroberfläche _ Kann nur durch Ungültigkeit aktualisiert werden.
_ _ UI-PKEY-Bezeichnung Kann nur durch Ungültigkeit aktualisiert werden.
UI _ PKEY _ TooltipDescription Kann nur durch Ungültigkeit aktualisiert werden.
UI _ PKEY _ TooltipTitle Kann nur durch Ungültigkeit aktualisiert werden.

Windows Menüband-Framework-Steuerelementbibliothek

MenuGroup-Markupelement