## 18.4 StackPanel Die Steuerelemente in einem StackPanel werden entweder horizontal oder vertikal angeordnet. Die Vorgabe ist eine vertikale Anordnung. Möchten Sie eine horizontale Anordnung erreichen, stellen Sie die Eigenschaft Orientation auf Horizontal ein. Ohne die explizite Angabe der Steuerelementbreite beansprucht das Control in der Einstellung Orientation=Vertical die gesamte Breite des StackPanel (siehe Abbildung 18.7). Dafür ist das Attribut HorizontalAlignment verantwortlich, dessen Wert auf Stretch eingestellt ist. Hier klicken, um das Bild zu vergrößern Abbildung 18.7 Vertikal ausgerichtete Buttons in einem »Stackpanel« Die Höhe des Controls wird minimal sein. Für einen Button bedeutet das, dass die Beschriftung noch soeben angezeigt wird. Andere Steuerelemente sind aber aufgrund ihrer geringen Minimalhöhe möglicherweise kaum noch zu erkennen. Sie können bei jedem Control durch Angabe der Eigenschaft Width die Breite ausdrücklich festlegen. Mit dieser Einstellung werden die Controls die angegebene Breite einnehmen und in der Mitte des StackPanel zentriert angezeigt. Dieses Verhalten lässt sich mit der Eigenschaft HorizontalAlignment ändern, indem Sie einen der beiden Werte Left oder Right festlegen. Das entsprechende Steuerelement positioniert sich dann am linken oder rechten Containerrand. Mit Center werden die Steuerelemente in einer Breite dargestellt, die beim Button zum Beispiel von der Beschriftung abhängt. Der folgende XAML-Code beschreibt die zentrierte Ausrichtung von drei Schaltflächen unterschiedlicher Breite. In Abbildung 18.8 sehen Sie die daraus resultierende Form zur Laufzeit.
    <StackPanel HorizontalAlignment="Center">
      <Button Width="80">Button1</Button>
      <Button Width="100">Button2</Button>
      <Button>Button3</Button>
    </StackPanel>
Hier klicken, um das Bild zu vergrößern Abbildung 18.8 Steuerelemente fester Breite in zentrierter Ausrichtung Per Vorgabe werden die Elemente im StackPanel in voller Breite vom oberen Fensterrand aus nach unten dargestellt. Die Eigenschaft VerticalAlignment erlaubt die Anordnung von unten nach oben. Dabei ist zu beachten, dass die Anordnung zwar vom unteren Fensterrand aus nach oben erfolgt, aber die Reihenfolge der Elemente erhalten bleibt, mit anderen Worten: Button1 steht weiterhin über Button2.
    <StackPanel VerticalAlignment="Bottom">
      <Button>Button1</Button>
      <Button>Button2</Button>
      <Button>Button3</Button>
    </StackPanel>
Hier klicken, um das Bild zu vergrößern Abbildung 18.9 Vertikale Ausrichtung der Komponenten Vom Prinzip her gleicht die horizontale Ausrichtung der eben beschriebenen vertikalen. Wenn Sie das Attribut Orientation auf Horizontal setzen, werden alle Steuerelemente im StackPanel vom linken Fensterrand aus der Reihe nach angezeigt. Die Höhe der Controls entspricht standardmäßig der Höhe des Panels. Die Breite wird automatisch so gewählt, dass das Steuerelement noch soeben angezeigt wird. Für eine beschriftete Schaltfläche bedeutet das, dass sich die Steuerelementbreite an der Beschriftung orientiert (siehe Abbildung 18.10).
    <StackPanel Orientation="Horizontal">
      <Button>Button1</Button>
      <Button>Button2</Button>
      <Button>Button3</Button>
    </StackPanel>
Hier klicken, um das Bild zu vergrößern Abbildung 18.10 Horizontale Ausrichtung der Controls im StackPanel Über FlowDirection können Sie die Reihenfolge der Anordnung beeinflussen. Dabei stehen Ihnen die Optionen LeftToRight und RightToLeft zur Verfügung. Die Vorgabe ist die Ausgabe der Buttons von links nach rechts.
    <StackPanel Orientation="Horizontal" FlowDirection="RightToLeft">
      <Button Height="100">Button1</Button>
      <Button Height="80" VerticalAlignment="Top">Button2</Button>
      <Button>Button3</Button>
    </StackPanel>
Hier klicken, um das Bild zu vergrößern