TOC

This article has been localized into German by the community.

Panels:

Einführung in WPF Panels

Panels sind eines der wichtigsten controls in WPF. Sie fungieren als container für andere controls und kontrollieren der deren Layout in Fenstern und Seiten. Da ein Fenster nur EIN control als Kind beinhalten kann werden Panels häufig verwendet um den verfügbaren Platz aufzuteilen. Jede so erstellte Teilfläche kann ein control oder wiederrum ein Panel beinhalten.

Es gibt viele verschiedene Panels die ihre Inhaltselemente unterschiedlich handhaben und layouten. Das richtige Panel zu verwenden ist also sehr wichtig um das Layout und Verhalten zu erreichen das gewünscht ist. Insbesondere wenn man grade mit WPF anfängt ist das nicht einfach. Der nächste Abschnitt beschreibt jedes Panel und vermittelt eine Idee davon wie es genutzt werden kann. In den nächsten Kapiteln werden die unterschiedlichen Panels im detail beschrieben.

Canvas

Ein einfaches Panel, das die Arbeitsweise von WinForms nachahmt. Es erlaubt Ihnen, jedem der untergeordneten Steuerelemente spezifische Koordinaten zuzuweisen, wodurch Sie die vollständige Kontrolle über das Layout erhalten. Dies ist jedoch nicht sehr flexibel, da Sie die untergeordneten Steuerelemente manuell verschieben und sicherstellen müssen, dass sie so ausgerichtet sind, wie Sie es wünschen. Verwenden Sie es (nur), wenn Sie die vollständige Kontrolle über die Positionen der untergeordneten Steuerelemente wünschen.

WrapPanel

Das WrapPanel positioniert alle seine Kinder nebeneinander. Standardmäßig werden die Kinder horizontal nebeneinander platziert, eine vertikale Platzierung ist auch möglich. Ist der verfügbare Platz in einer Zeile oder Spalte ausgeschöpft wird umgebrochen und die kinder werden in der nächsten Zeile oder Spalte platziert. Benutze dieses Control wenn du eine vertikale oder horizontale liste möchtest die umgebrochen wird sobald eine reihe gefüllt ist.

StackPanel

Das Stackpanel verhält sich ähnlich wie ein WrapPanel, aber anstatt die nächste Zeile zu füllen, wenn die Kind-Controls zu viel Platz brauchen, vergrössert es sich einfach selbst, wenn möglich. Genau wie bei einem WrapPanel kann die Orientierung entweder Horizontal oder Vertikal sein, aber anstatt die Höhe oder Breite basierend auf dem grössten Objekt anzupassen, wird jedes Kind gestreckt, so dass es die maximale Breite oder Höhe einnimmt. Nutze das Stackpanel wenn du eine Liste von Controls erstellen möchtest, die den gesamten verfügbaren Platz verwenden, und kein Wrapping benötigst.

DockPanel

Das DockPanel erlaubt es Elemente oben, unten, links, rechts oder im Zentrum anzudocken. Standardmäßig füllt das letzte definierte Control den verbleibenden Platz auf, wenn keine spezifische Andockposition vorgegeben wurde. Das gleiche kann auch mit einem GridPanel erreicht werden, aber für simplere Situationen ist das DockPanel einfacher zu verwenden. Nutze das DockPanel immer dann, wenn du ein oder mehrere Controls an eine bestimmte Seite andocken möchtest, z.B. um das Fenster in verschiedene Areale aufzutrennen.

Grid

Das Grid ist wahrscheinlich das komplexeste aller Paneltypen. Ein Grid kann mehrere Reihen und Spalten enthalten. Du definierst die Höhe für jede Reihe resp. die Breite für jede Spalte entweder mit einem absoluten Pixelwert, als Prozentangabe des verfügbaren Platzes, oder als "auto", in dem Fall passt sich die Grösse der Reihe oder Spalte in Abhängigkeit vom Inhalt automatisch an. Nutze Grid wenn andere Panels nicht funktionieren, z.B. wenn mehrere Spalten notwendig sind und häufig auch in Kombination mit anderen Panels.

UniformGrid

Das UniformGrid ist genau wie ein Grid, mit der Möglichkeit mehrere Reihen und Spalten zu haben, aber mit einem grossen Unterschied: Alle Reihen und Spalten haben die gleiche Grösse! Verwende UniformGrid, wenn du das Grid-Verhalten benötigst, es aber nicht notwendig ist, unterschiedliche Grössen für die Reihen und Spalten anzugeben.


This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!