Menügruppe

Die Menügruppe organisiert verwandte Befehle und Steuerelemente in einem Menü oder einer Symbolleiste.

Einführung

Das Menügruppensteuerelement, das über das MenuGroup-Markupelement verfügbar gemacht wird, ist ein logischer Container für Gruppen von Elementen oder Befehlen in menübasierten Steuerelementen, einschließlich der Minisymbolleiste " Kontextmenü ".

Eine Bezeichnung kann für eine Menügruppe über das LabelTitle-Attribut oder die Command.LabelTitle-Eigenschaft einer zugeordneten Befehlsdeklaration angegeben werden. Der wert, der LabelTitle zugewiesen ist, wird als Kategorieheader gerendert.

Im folgenden Beispiel wird das Befehlsmarkup für ein Steuerelement mit geteilten Schaltflächen veranschaulicht, das zwei Menügruppenbefehlsdeklarationen 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ügruppensteuerelementen), das aus dem Markup in den vorherigen Beispielen generiert wird.

screen shot of a menu with three menu group controls.

Das Menübandframework definiert eine Auflistung von Eigenschaftsschlüsseln für das Menügruppensteuerelement.

In der Regel wird eine Menügruppeneigenschaft auf der Menüband-Benutzeroberfläche aktualisiert, indem der Befehl, der dem Steuerelement zugeordnet ist, durch einen Aufruf der IUIFramework::InvalidateUICommand-Methode ungültig wird. Das Ungültigkeitsereignis wird behandelt, und die von der IUICommandHandler::UpdateProperty-Rückrufmethode definierten Eigenschaftenaktualisierungen.

Die IUICommandHandler::UpdateProperty-Rückrufmethode wird nicht ausgeführt, und die Anwendung wird nach einem aktualisierten Eigenschaftswert abgefragt, bis die Eigenschaft vom Framework erforderlich ist. Wenn beispielsweise eine Registerkarte aktiviert ist und ein Steuerelement in 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ügruppensteuerelement zugeordnet sind.

Eigenschaftsschlüssel Notizen
UI_PKEY_Enabled Unterstützt IUIFramework::GetUICommandProperty und IUIFramework::SetUICommandProperty.
UI_PKEY_Keytip Kann nur über ungültige Aktualisierungen aktualisiert werden.
UI_PKEY_Label Kann nur über ungültige Aktualisierungen aktualisiert werden.
UI_PKEY_TooltipDescription Kann nur über ungültige Aktualisierungen aktualisiert werden.
UI_PKEY_TooltipTitle Kann nur über ungültige Aktualisierungen aktualisiert werden.

 

Windows Menüband-Framework-Steuerelementbibliothek

MenuGroup-Markupelement