Anpassen eines Menübands durch Größendefinitionen und Skalierungsrichtlinien

In der Menübandbefehlsleiste gehostete Steuerelemente unterliegen Layoutregeln, die vom Windows Menübandframework erzwungen werden und auf einer Kombination aus Standardverhalten und Layoutvorlagen (frameworkdefiniert und benutzerdefiniert) basieren, wie im Menübandmarkup deklariert. Diese Regeln definieren das adaptive Layoutverhalten des Menübandframeworks, das die Anpassung von Steuerelementen in der Befehlsleiste an verschiedene Menübandgrößen zur Laufzeit beeinflusst.

Einführung

Adaptives Layout, wie vom Menübandframework definiert, ist die Fähigkeit aller Steuerelemente auf der Menüband-Benutzeroberfläche, ihre Organisation, Größe, das Format und die relative Skalierung basierend auf Änderungen an der Größe des Menübands zur Laufzeit dynamisch anzupassen.

Das Framework macht adaptive Layoutfunktionen über eine Reihe von Markupelementen verfügbar, die für die Angabe und Anpassung verschiedener Layoutverhaltensweisen vorgesehen sind. Eine Sammlung von Vorlagen namens SizeDefinitionswird vom Framework definiert, von denen jede verschiedene Steuerelement- und Layoutszenarien unterstützt. Das Framework unterstützt jedoch auch benutzerdefinierte Vorlagen, wenn die vordefinierten Vorlagen nicht die benutzeroberfläche oder layouts bereitstellen, die von einer Anwendung benötigt werden.

Um Steuerelemente in einem bevorzugten Layout mit einer bestimmten Menübandgröße anzuzeigen, funktionieren sowohl vordefinierte vorlagen als auch benutzerdefinierte Vorlagen in Verbindung mit dem ScalingPolicy-Element. Dieses Element enthält ein Manifest von Größeneinstellungen, die das Framework beim Rendern des Menübands als Leitfaden verwendet.

Hinweis

Das Menübandframework bietet Standardlayoutverhalten basierend auf einer Reihe integrierter Heuristiken für die Organisation und Darstellung von Steuerelementen zur Laufzeit, ohne dass die vordefinierten SizeDefinition-Vorlagen erforderlich sind. Diese Funktion ist jedoch nur für Prototypzwecke vorgesehen.

MenübandgrößeDefinitionsvorlagen

Das Menübandframework stellt einen umfassenden Satz von SizeDefinition-Vorlagen bereit, die das Größen- und Layoutverhalten für eine Gruppe von Menüband-Steuerelementen angeben. Diese Vorlagen decken die häufigsten Szenarien zum Organisieren von Steuerelementen in einer Menübandanwendung ab.

Um eine konsistente Benutzeroberfläche für Menübandanwendungen zu erzwingen, erzwingt jede SizeDefinition-Vorlage Einschränkungen für die Steuerelemente oder die Von ihr unterstützte Steuerelementfamilie.

Die Schaltflächenfamilie von Steuerelementen umfasst beispielsweise Folgendes:

Während die Eingabefamilie von Steuerelementen Folgendes umfasst:

Kontrollkästchen und Katalog im Menüband gehören weder zur Schaltflächenfamilie noch zur Eingabefamilie. Diese beiden Steuerelemente können nur verwendet werden, wenn sie explizit in einer SizeDefinition-Vorlage angegeben sind.

Im Folgenden finden Sie eine Liste der SizeDefinition-Vorlagen mit einer Beschreibung des Layouts und der Steuerelemente, die von den einzelnen Vorlagen zugelassen werden.

Wichtig

Wenn die im Markup deklarierten Steuerelemente nicht genau dem Steuerelementtyp, der Reihenfolge und der Menge zugeordnet sind, die in der zugeordneten Vorlage definiert sind, wird vom Markupcompiler ein Validierungsfehler protokolliert, und die Kompilierung wird beendet.

OneButton

Ein Steuerelement der Schaltflächenfamilie.
Nur große Gruppen werden unterstützt.

Abbildung der Vorlage "onebutton sizedefinition".

TwoButtons

Zwei Steuerelemente der Schaltflächenfamilie.
Es werden nur große und mittlere Gruppengrößen unterstützt.

Abbildung der Vorlage "twobuttons large sizedefinition".

Abbildung der Vorlage "twobuttons medium sizedefinition".

ThreeButtons

Drei Steuerelemente der Schaltflächenfamilie.
Es werden nur große und mittlere Gruppengrößen unterstützt.

Abbildung der Vorlage "threebuttons large sizedefinition".

Abbildung der Vorlage "threebuttons medium sizedefinition".

ThreeButtons-OneBigAndTwoSmall

Drei Steuerelemente der Schaltflächenfamilie.
Die erste Schaltfläche wird in allen drei Größen hervorgehoben dargestellt.

Abbildung der Vorlage "threebuttons-onebigandtwosmall large sizedefinition".

Abbildung der Vorlage "threebuttons-onebigandtwosmall medium sizedefinition".

Abbildung der Vorlage threebuttons-onebigandtwosmall small sizedefinition.

ThreeButtonsAndOneCheckBox

Drei Steuerelemente der Schaltflächenfamilie, die von einem einzelnen CheckBox-Steuerelement begleitet werden.
Es werden nur große und mittlere Gruppengrößen unterstützt.

Abbildung der Vorlage "threebuttonsandonecheckbox large sizedefinition".

Abbildung der Vorlage "threebuttonsandonecheckbox medium sizedefinition".

FourButtons

Vier Steuerelemente der Schaltflächenfamilie.

Abbildung der Vorlage "fourbuttons large sizedefinition".

Abbildung der Vorlage "Fourbuttons medium sizedefinition".

Abbildung der Vorlage "Fourbuttons small sizedefinition".

FiveButtons

Fünf Steuerelemente der Schaltflächenfamilie.

Abbildung der Vorlage "fivebuttons large sizedefinition".

Abbildung der Vorlage "fivebuttons medium sizedefinition".

Abbildung der Vorlage "fivebuttons small sizedefinition".

FiveOrSixButtons

Fünf Steuerelemente der Schaltflächenfamilie und eine optionale sechste Schaltfläche.

Abbildung der Vorlage "fiveorsixbuttons large sizedefinition".

Abbildung der Vorlage "fiveorsixbuttons medium sizedefinition".

Abbildung der Vorlage "fiveorsixbuttons small sizedefinition".

SixButtons

Sechs Steuerelemente der Schaltflächenfamilie.

Abbildung der Vorlage "sixbuttons large sizedefinition".

Abbildung der Vorlage "sixbuttons medium sizedefinition".

Abbildung der Vorlage "sixbuttons small sizedefinition".

SixButtons-TwoColumns

Sechs Steuerelemente der Schaltflächenfamilie (alternative Darstellung).

Abbildung der Vorlage "sixbuttons-twocolumns large sizedefinition".

sixbuttons-twocolumns mittlere GrößeDefinitionsvorlage.

Abbildung der Vorlage "sixbuttons-twocolumns small sizedefinition".

SevenButtons

Sieben Steuerelemente der Schaltflächenfamilie.

Abbildung der Vorlage "sevenbuttons large sizedefinition".

Abbildung der Vorlage "mediumsizedefinition" für "sevenbuttons".

Abbildung der Vorlage "sevenbuttons small sizedefinition".

EightButtons

Acht Steuerelemente der Schaltflächenfamilie.

Abbildung der Vorlage eightbuttons-lastthreesmall large sizedefinition.

Abbildung der Vorlage eightbuttons-lastthreesmall medium sizedefinition.

Abbildung der Vorlage eightbuttons-lastthreesmall small sizedefinition.

EightButtons-LastThreeSmall

Acht Steuerelemente der Schaltflächenfamilie (alternative Darstellung).

Hinweis

Alle mit dieser Vorlage deklarierten Steuerelementelemente müssen in zwei ControlGroup-Elementen enthalten sein: eines für die ersten fünf Elemente und eines für die letzten drei Elemente.


Im folgenden Beispiel wird das für diese Vorlage erforderliche Markup veranschaulicht.

<Group CommandName="cmdSizeDefinitionsGroup" 
       SizeDefinition="EightButtons-LastThreeSmall">
  <ControlGroup>
    <Button CommandName="cmdSDButton1" />
    <Button CommandName="cmdSDButton2" />
    <Button CommandName="cmdSDButton3" />
    <Button CommandName="cmdSDButton4" />
    <Button CommandName="cmdSDButton5" />
  </ControlGroup>
  <ControlGroup>
    <Button CommandName="cmdSDButton6" />
    <Button CommandName="cmdSDButton7" />
    <Button CommandName="cmdSDButton8" />
  </ControlGroup>
</Group>

Abbildung der Vorlage "Eightbuttons large sizedefinition".

Abbildung der Vorlage "eightbuttons medium sizedefinition".

Abbildung der Small-SizeDefinition-Vorlage für achtButtons.

NineButtons

Neun Steuerelemente der Schaltflächenfamilie.

Abbildung der Vorlage ninebuttons large sizedefinition.

Abbildung der Vorlage ninebuttons medium sizedefinition.

Abbildung der Vorlage ninebuttons small sizedefinition.

TenButtons

Zehn Steuerelemente der Schaltflächenfamilie.

Abbildung der Vorlage "large sizedefinition" für Tenbuttons.

Abbildung der Vorlage "tenbuttons medium sizedefinition".

Abbildung der Vorlage "small sizedefinition" für Tenbuttons.

111Buttons

ElfTe Steuerelemente der Schaltflächenfamilie.

Abbildung der Vorlage "elfbuttons large sizedefinition".

Abbildung der Vorlage "elfbuttons medium sizedefinition".

Abbildung der Vorlage "elfbuttons small sizedefinition".

OneFontControl

Ein FontControl-Objekt.

Es werden nur die Gruppengrößen Groß und Mittel unterstützt.

Wichtig

Das Hinzufügen eines FontControl-Objekts in eine benutzerdefinierte Vorlagendefinition wird vom Framework nicht unterstützt.

Abbildung der Vorlage onefontcontrol large sizedefinition.

Abbildung der Vorlage onefontcontrol medium sizedefinition.

OneInRibbonGallery

Ein InRibbonGallery-Steuerelement.

Es werden nur die Gruppengrößen Groß und Klein unterstützt.

Abbildung der Vorlage oneinribbongallery large sizedefinition.

Abbildung der Vorlage oneinribbongallery small sizedefinition.

InRibbonGalleryAndBigButton

Ein InRibbonGallery-Steuerelement und ein Steuerelement der Schaltflächenfamilie.

Es werden nur die Gruppengrößen Groß und Klein unterstützt.

Abbildung der Vorlage inribbongalleryandbigbutton large sizedefinition.

Abbildung der Vorlage inribbongalleryandbigbutton small sizedefinition.

InRibbonGalleryAndButtons-GalleryScalesFirst

Ein Steuerelement im Menübandkatalog und zwei oder drei Steuerelemente der Schaltflächenfamilie.

Der Katalog wird auf die Popupdarstellung in den Gruppengrößen Mittel und Klein reduziert.

Abbildung der Vorlage inribbongalleryandbuttons-galleryscalesfirst large sizedefinition.

Abbildung der Vorlage inribbongalleryandbuttons-galleryscalesfirst medium sizedefinition.

Abbildung der Vorlage inribbongalleryandbuttons-galleryscalesfirst small sizedefinition.

ButtonGroups

Eine komplexe Anordnung von 32 Steuerelementen der Schaltflächenfamilie (die meisten davon sind optional).

Hinweis

Abgesehen von der optionalen Schaltfläche in voller Größe der großen ButtonGroups-Vorlage müssen alle mit dieser Vorlage deklarierten Steuerelementelemente in ControlGroup-Elementen enthalten sein.

Im folgenden Beispiel wird das Markup veranschaulicht, das zum Anzeigen aller 32 -Steuerelementelemente (erforderlich und optional) mit dieser Vorlage erforderlich ist.

<Group CommandName="cmdSizeDefinitionsGroup"
       SizeDefinition="ButtonGroups">
  <!-- Row 1 -->
  <ControlGroup>
    <ControlGroup>
      <Button CommandName="cmdSDButton1" />
      <Button CommandName="cmdSDButton2" />
      <Button CommandName="cmdSDButton3" />
      <Button CommandName="cmdSDButton4" />
      <Button CommandName="cmdSDButton5" />
      <Button CommandName="cmdSDButton6" />
      <Button CommandName="cmdSDButton7" />
      <Button CommandName="cmdSDButton8" />
      <Button CommandName="cmdSDButton9" />
      <Button CommandName="cmdSDButton10" />
    </ControlGroup>
    <ControlGroup>
      <Button CommandName="cmdSDButton11" />
      <Button CommandName="cmdSDButton12" />
    </ControlGroup>
    <ControlGroup>
      <Button CommandName="cmdSDButton13" />
      <Button CommandName="cmdSDButton14" />
    </ControlGroup>
    <ControlGroup>
      <Button CommandName="cmdSDButton15" />
    </ControlGroup>
    <ControlGroup>
      <Button CommandName="cmdSDButton16" />
    </ControlGroup>
    <ControlGroup>
      <Button CommandName="cmdSDButton17" />
      <Button CommandName="cmdSDButton18" />
    </ControlGroup>
  </ControlGroup>
  <!-- Row 2 -->
  <ControlGroup>
    <ControlGroup>
      <Button CommandName="cmdSDButton19" />
      <Button CommandName="cmdSDButton20" />
      <Button CommandName="cmdSDButton21" />
      <Button CommandName="cmdSDButton22" />
      <Button CommandName="cmdSDButton23" />
      <Button CommandName="cmdSDButton24" />
      <Button CommandName="cmdSDButton25" />
      <Button CommandName="cmdSDButton26" />
      <Button CommandName="cmdSDButton27" />
      <Button CommandName="cmdSDButton28" />
    </ControlGroup>
    <ControlGroup>
      <Button CommandName="cmdSDButton29" />
    </ControlGroup>
    <ControlGroup>
      <Button CommandName="cmdSDButton30" />
      <Button CommandName="cmdSDButton31" />
    </ControlGroup>
  </ControlGroup>
  <Button CommandName="cmdSDButton32" />            
</Group>

Abbildung der vorlage "large sizedefinition" für Schaltflächengruppen.

Abbildung der Vorlage buttongroups medium sizedefinition.

Abbildung der Small-SizeDefinition-Vorlage für Schaltflächengruppen.

ButtonGroupsAndInputs

Zwei Eingabefamilien-Steuerelemente (das zweite ist optional), gefolgt von einer komplexen Anordnung von 29 Steuerelementen der Schaltflächenfamilie (die meisten davon sind optional).

Es werden nur die Gruppengrößen Groß und Mittel unterstützt.

Hinweis

Alle mit dieser Vorlage deklarierten Steuerelementelemente müssen in ControlGroup-Elementen enthalten sein.

Im folgenden Beispiel wird das Markup veranschaulicht, das erforderlich ist, um alle Steuerelementelemente (erforderlich und optional) mit dieser Vorlage anzuzeigen.

<Group CommandName="cmdSizeDefinitionsGroup" 
       SizeDefinition="ButtonGroupsAndInputs">
  <!-- Row 1 -->
  <ControlGroup>
    <ControlGroup>
      <ComboBox CommandName="cmdSDComboBox" />
      <Spinner CommandName="cmdSDSpinner" />
    </ControlGroup>
    <ControlGroup>
      <Button CommandName="cmdSDButton1" />
      <Button CommandName="cmdSDButton2" />
      <Button CommandName="cmdSDButton3" />
      <Button CommandName="cmdSDButton4" />
      <Button CommandName="cmdSDButton5" />
      <Button CommandName="cmdSDButton6" />
      <Button CommandName="cmdSDButton7" />
      <Button CommandName="cmdSDButton8" />
      <Button CommandName="cmdSDButton9" />
    </ControlGroup>
    <ControlGroup>
      <Button CommandName="cmdSDButton10" />
    </ControlGroup>
    <ControlGroup>
      <Button CommandName="cmdSDButton11" />
      <Button CommandName="cmdSDButton12" />
    </ControlGroup>
    <ControlGroup>
      <Button CommandName="cmdSDButton13" />
    </ControlGroup>
    <ControlGroup>
      <Button CommandName="cmdSDButton14" />
    </ControlGroup>
  </ControlGroup>
  <!-- Row 2 -->  
  <ControlGroup>
    <ControlGroup>
      <Button CommandName="cmdSDButton15" />
      <Button CommandName="cmdSDButton16" />
      <Button CommandName="cmdSDButton17" />
      <Button CommandName="cmdSDButton18" />
      <Button CommandName="cmdSDButton19" />
      <Button CommandName="cmdSDButton20" />
      <Button CommandName="cmdSDButton21" />
      <Button CommandName="cmdSDButton22" />
      <Button CommandName="cmdSDButton23" />
      <Button CommandName="cmdSDButton24" />
    </ControlGroup>
    <ControlGroup>
      <Button CommandName="cmdSDButton25" />
      <Button CommandName="cmdSDButton26" />
    </ControlGroup>
    <ControlGroup>
      <Button CommandName="cmdSDButton27" />
      <Button CommandName="cmdSDButton28" />
    </ControlGroup>
    <ControlGroup>
      <Button CommandName="cmdSDButton29" />
    </ControlGroup>
  </ControlGroup>
</Group>

Abbildung der Vorlage "buttongroups wieputs large sizedefinition".

Abbildung der Vorlage "buttongroups wieputs medium sizedefinition".

BigButtonsAndSmallButtonsOrInputs

Zwei Steuerelemente der Schaltflächenfamilie (beide optional), gefolgt von zwei oder drei Schaltflächen- oder Eingabefamilien-Steuerelementen.

Es werden nur die Gruppengrößen Groß und Mittel unterstützt.

Abbildung von bigbuttonsandsmallbuttonsorinputs large sizedefinition template.

Abbildung der Vorlage bigbuttonsandsmallbuttonsorinputs medium sizedefinition.

Beispiel für "Basic SizeDefinition"

Das folgende Codebeispiel bietet eine grundlegende Demonstration zum Deklarieren einer SizeDefinition-Vorlage im Menübandmarkup.

OneInRibbonGallery SizeDefinition wird für dieses spezielle Beispiel verwendet, aber alle Frameworkvorlagen werden auf ähnliche Weise angegeben.

<!-- InRibbonGallery -->
<Group CommandName="cmdInRibbonGalleryGroup" SizeDefinition="OneInRibbonGallery">
  <InRibbonGallery CommandName="cmdInRibbonGallery"
                   MaxColumns="10"
                   MaxColumnsMedium="5"
                   MinColumnsLarge="5"
                   MinColumnsMedium="3"
                   Type="Items">
    <InRibbonGallery.MenuLayout>
      <VerticalMenuLayout Rows="2"
                          Gripper="Vertical"/>
    </InRibbonGallery.MenuLayout>
    <InRibbonGallery.MenuGroups>
      <MenuGroup>
        <Button CommandName="cmdButton1"></Button>
        <Button CommandName="cmdButton2"></Button>
      </MenuGroup>
      <MenuGroup>
        <Button CommandName="cmdButton3"></Button>
      </MenuGroup>
    </InRibbonGallery.MenuGroups>            
  </InRibbonGallery>
</Group>

Komplexes SizeDefinition-Beispiel mit Skalierungsrichtlinien

Das Reduzierungsverhalten von SizeDefinition-Vorlagen kann mithilfe von Skalierungsrichtlinien im Menübandmarkup gesteuert werden.

Das ScalingPolicy-Element enthält ein Manifest der Deklarationen ScalingPolicy.IdealSizes und Scale, die adaptive Layouteinstellungen für mindestens ein Group-Element angeben, wenn die Größe des Menübands geändert wird.

Hinweis

Es wird dringend empfohlen, geeignete Skalierungsrichtliniedetails so anzugeben, dass die meisten, wenn nicht alle Group-Elemente einem Scale-Element zugeordnet sind, bei dem das Size-Attribut gleich Popup ist. Auf diese Weise kann das Framework das Menüband so klein wie möglich rendern und die breiteste Palette von Anzeigegeräten unterstützen, bevor automatisch ein Bildlaufmechanismus eingeführt wird.

Im folgenden Codebeispiel wird ein ScalingPolicy-Manifest veranschaulicht, das eine ScalingPolicy.IdealSizes SizeDefinition-Einstellung für jede von vier Gruppen von Steuerelementen auf einer Registerkarte Start angibt. Darüber hinaus werden Skalierungselemente angegeben, um das Reduzierungsverhalten jeder Gruppe in absteigender Reihenfolge zu beeinflussen.

<Tab CommandName="Home">
  <Tab.ScalingPolicy>
    <ScalingPolicy>
      <ScalingPolicy.IdealSizes>
        <Scale Group="GroupClipboard" Size="Medium"/>
        <Scale Group="GroupView" Size="Large"/>
        <Scale Group="GroupFont" Size="Large"/>
        <Scale Group="GroupParagraph" Size="Large"/>
      </ScalingPolicy.IdealSizes>
      <Scale Group="GroupClipboard" Size="Small"/>
      <Scale Group="GroupClipboard" Size="Popup"/>
      <Scale Group="GroupFont" Size="Medium"/>
      <Scale Group="GroupFont" Size="Popup"/>
      <Scale Group="GroupParagraph" Size="Medium"/>
      <Scale Group="GroupParagraph" Size="Popup"/>
      <!-- 
        GroupView group is associated with the OneButton SizeDefinition.
        Since this template is constrained to one size (Large) there
        is no need to declare further scaling preferences.
      -->
    </ScalingPolicy>
  </Tab.ScalingPolicy>

  <Group CommandName="GroupClipboard" SizeDefinition="FourButtons">
    <Button CommandName="Paste"/>
    <Button CommandName="Cut"/>
    <Button CommandName="Copy"/>
    <Button CommandName="SelectAll"/>
  </Group>

  <Group CommandName="GroupFont"  ApplicationModes="1">
    <FontControl CommandName="Font" FontType="FontWithColor" />
  </Group>

  <Group CommandName="GroupParagraph"  ApplicationModes="1" SizeDefinition="ButtonGroups">
    <ControlGroup>
      <ControlGroup>
        <ToggleButton CommandName="Numbered" />
        <ToggleButton CommandName="Bulleted" />
      </ControlGroup>
    </ControlGroup>
    <ControlGroup>
      <ControlGroup>
        <ToggleButton CommandName="LeftJustify" />
        <ToggleButton CommandName="CenterJustify" />
        <ToggleButton CommandName="RightJustify" />
      </ControlGroup>
      <ControlGroup/>
      <ControlGroup>
        <Button CommandName="Outdent" />
        <Button CommandName="Indent" />
      </ControlGroup>
    </ControlGroup>
  </Group>

  <Group CommandName="GroupView" SizeDefinition="OneButton" >
    <ToggleButton CommandName="ViewSource"/>
  </Group>

</Tab>

Benutzerdefinierte Vorlagen

Wenn das Standardlayoutverhalten und die vordefinierten SizeDefinition-Vorlagen nicht die Flexibilität oder Unterstützung für ein bestimmtes Layoutszenario bieten, werden benutzerdefinierte Vorlagen vom Menübandframework über das Ribbon.SizeDefinitions-Element unterstützt.

Benutzerdefinierte Vorlagen können auf zwei Arten deklariert werden: eine eigenständige Methode, die das Ribbon.SizeDefinitions-Element verwendet, um wiederverwendbare benannte Vorlagen zu deklarieren, oder eine Inlinemethode, die gruppenspezifischist.

Eigenständige Vorlage

Das folgende Codebeispiel veranschaulicht eine einfache, wiederverwendbare benutzerdefinierte Vorlage.

<Ribbon.SizeDefinitions>
  <SizeDefinition Name="CustomTemplate">
    <GroupSizeDefinition Size="Large">
      <ControlSizeDefinition ImageSize="Large" IsLabelVisible="true" />
    </GroupSizeDefinition>
    <GroupSizeDefinition Size="Medium">
      <ControlSizeDefinition ImageSize="Small" IsLabelVisible="false" />
    </GroupSizeDefinition>
    <GroupSizeDefinition Size="Small">
      <ControlSizeDefinition ImageSize="Small" IsLabelVisible="false" />
    </GroupSizeDefinition>
  </SizeDefinition>
</Ribbon.SizeDefinitions>

Inlinevorlage

Die folgenden Codebeispiele veranschaulichen eine einfache benutzerdefinierte Inlinevorlage für eine Gruppe von vier Schaltflächen.

Dieser Codeabschnitt zeigt die Befehlsdeklarationen für eine Gruppe von Schaltflächen. Hier werden auch große und kleine Bildressourcen angegeben.

<!-- Button -->
<Command Name="cmdButtonGroup"
         Symbol="cmdButtonGroup"
         Comment="Button Group"
         LabelTitle="ButtonGroup"/>
<Command Name="cmdButton1"
         Symbol="cmdButton1"
         Comment="Button1"
         LabelTitle="Button1"/>
<Command Name="cmdButton2"
         Symbol="cmdButton2"
         Comment="Button2"
         LabelTitle="Button2"/>
<Command Name="cmdButton3"
         Symbol="cmdButton3"
         Comment="Button3"
         LabelTitle="Button3"/>
<Command Name="cmdButtonGroup2"
         Symbol="cmdButtonGroup2"
         Comment="Button Group2"
         LabelTitle="ButtonGroup2"/>
<Command Name="cmdButtonG21"
         Symbol="cmdButtonG21"
         Comment="ButtonG21"
         LabelTitle="ButtonG21">
  <Command.LargeImages>
    <Image Source="res/large.bmp"/>
  </Command.LargeImages>
  <Command.SmallImages>
    <Image Source="res/small.bmp"/>
  </Command.SmallImages>
</Command>
<Command Name="cmdButtonG22"
         Symbol="cmdButtonG22"
         Comment="ButtonG22"
         LabelTitle="ButtonG22">
  <Command.LargeImages>
    <Image Source="res/large.bmp"/>
  </Command.LargeImages>
  <Command.SmallImages>
    <Image Source="res/small.bmp"/>
  </Command.SmallImages>
</Command>
<Command Name="cmdButtonG23"
         Symbol="cmdButtonG23"
         Comment="ButtonG23"
         LabelTitle="ButtonG23">
  <Command.LargeImages>
    <Image Source="res/large.bmp"/>
  </Command.LargeImages>
  <Command.SmallImages>
    <Image Source="res/small.bmp"/>
  </Command.SmallImages>
</Command>
<Command Name="cmdButtonG24"
         Symbol="cmdButtonG24"
         Comment="ButtonG24"
         LabelTitle="ButtonG24">
  <Command.LargeImages>
    <Image Source="res/large.bmp"/>
  </Command.LargeImages>
  <Command.SmallImages>
    <Image Source="res/small.bmp"/>
  </Command.SmallImages>
</Command>

In diesem Codeabschnitt wird veranschaulicht, wie Sie große, mittlere und kleine GroupSizeDefinition-Vorlagen definieren, um die vier Schaltflächen in verschiedenen Größen und Layouts anzuzeigen. Die ScalingPolicy-Deklaration für die Registerkarte definiert, welche Vorlage für eine Gruppe von Steuerelementen basierend auf der Menübandgröße und dem für die aktive Registerkarte erforderlichen Platz verwendet wird.

        <Tab CommandName="cmdTab6">
          <Tab.ScalingPolicy>
            <ScalingPolicy>
              <ScalingPolicy.IdealSizes>
                <Scale Group="cmdButtonGroup"
                       Size="Large"/>
                <Scale Group="cmdButtonGroup2"
                       Size="Large"/>
                <Scale Group="cmdToggleButtonGroup"
                       Size="Large"/>
              </ScalingPolicy.IdealSizes>
              <Scale Group="cmdButtonGroup"
                     Size="Medium"/>
              <Scale Group="cmdButtonGroup2"
                     Size="Medium"/>
              <Scale Group="cmdButtonGroup2"
                     Size="Small"/>
              <Scale Group="cmdButtonGroup2"
                     Size="Popup"/>
            </ScalingPolicy>
          </Tab.ScalingPolicy>

          <Group CommandName="cmdButtonGroup2">
            <SizeDefinition>
              <ControlNameMap>
                <ControlNameDefinition Name="button1"/>
                <ControlNameDefinition Name="button2"/>
                <ControlNameDefinition Name="button3"/>
                <ControlNameDefinition Name="button4"/>
              </ControlNameMap>
              <GroupSizeDefinition Size="Large">
                <ControlGroup>
                  <ControlSizeDefinition ControlName="button1"
                                         ImageSize="Large"
                                         IsLabelVisible="true" />
                  <ControlSizeDefinition ControlName="button2"
                                         ImageSize="Large"
                                         IsLabelVisible="true" />
                </ControlGroup>
                <ColumnBreak ShowSeparator="true"/>
                <ControlGroup>
                  <ControlSizeDefinition ControlName="button3"
                                         ImageSize="Large"
                                        IsLabelVisible="true" />
                  <ControlSizeDefinition ControlName="button4"
                                        ImageSize="Large"
                                        IsLabelVisible="true" />
                </ControlGroup>
              </GroupSizeDefinition>
              <GroupSizeDefinition Size="Medium">
                <Row>
                  <ControlSizeDefinition ControlName="button1"
                                         ImageSize="Small"
                                         IsLabelVisible="true" />
                  <ControlSizeDefinition ControlName="button3"
                                         ImageSize="Small"
                                         IsLabelVisible="true" />
                </Row>
                <Row>
                  <ControlSizeDefinition ControlName="button2"
                                         ImageSize="Small"
                                         IsLabelVisible="true" />
                  <ControlSizeDefinition ControlName="button4"
                                         ImageSize="Small"
                                         IsLabelVisible="true" />
                </Row>
              </GroupSizeDefinition>
              <GroupSizeDefinition Size="Small">
                <Row>
                  <ControlSizeDefinition ControlName="button1"
                                         ImageSize="Small"
                                         IsLabelVisible="true" />
                  <ControlSizeDefinition ControlName="button3"
                                         ImageSize="Small"
                                         IsLabelVisible="false" />
                </Row>
                <Row>
                  <ControlSizeDefinition ControlName="button2"
                                         ImageSize="Small"
                                         IsLabelVisible="true" />
                  <ControlSizeDefinition ControlName="button4"
                                         ImageSize="Small"
                                         IsLabelVisible="false" />
                </Row>
              </GroupSizeDefinition>
            </SizeDefinition>
            <Button CommandName="cmdButtonG21"></Button>
            <Button CommandName="cmdButtonG22"></Button>
            <Button CommandName="cmdButtonG23"></Button>
            <Button CommandName="cmdButtonG24"></Button>
          </Group>
          <Group CommandName="cmdCheckBoxGroup">
            <CheckBox CommandName="cmdCheckBox"></CheckBox>
          </Group>
          <Group CommandName="cmdToggleButtonGroup"
                 SizeDefinition="OneButton">
            <ToggleButton CommandName="cmdToggleButton"></ToggleButton>
          </Group>
          <Group CommandName="cmdButtonGroup"
                 SizeDefinition="ThreeButtons">
            <Button CommandName="cmdButton1"></Button>
            <Button CommandName="cmdButton2"></Button>
            <Button CommandName="cmdButton3"></Button>
          </Group>
        </Tab>

Die folgenden Abbildungen zeigen, wie die Vorlagen aus dem vorherigen Beispiel auf die Menübandbenutzeroberfläche angewendet werden, um eine Verringerung der Menübandgröße zu bieten.

type Image
Groß Abbildung einer großen benutzerdefinierten Inlinevorlage.
Medium Abbildung einer benutzerdefinierten Inlinevorlage für mittleren Bereich.
Klein Abbildung einer kleinen benutzerdefinierten Inlinevorlage.
Popup Abbildung einer benutzerdefinierten Inline-Popupvorlage.

SizeDefinition

Skalieren

Gruppe