Galileo Computing - Zum Seitenanfang

18.2 Layoutcontainer Zur nächsten ÜberschriftZur vorigen Überschrift

In einer auf WinForms basierenden Windows-Anwendung dürfen Sie ganz unbekümmert und nach Belieben die Steuerelemente anordnen. In einer WPF-Anwendung geht das nicht so einfach. Hier übernehmen Layoutcontainer die Anordnung und Darstellung der enthaltenen Steuerelemente. Die Folge ist, dass sich die Anordnung nicht mehr an der Angabe der Absolutkoordinaten orientiert, sondern am Aufbau des Fensters. Die Anwendung skaliert automatisch, wenn der Benutzer Einstellungen ändert oder die Größe des Fensters ändert.

Die Idee, die hinter den Layoutcontainern steckt, ist, eine Komponente einer bestimmte Position im Fenster zuzuordnen. Das hat den Vorteil, dass die Komponente immer an der gleichen Stelle angezeigt wird und die relative Lage zu allen anderen Komponenten erhalten bleibt. Um das gewünschte Layout zu erzielen, werden von der WPF mehrere unterschiedliche Container bereitgestellt, die sich in ihrer Charakteristik unterscheiden und sich zudem ineinander verschachteln lassen.

Es sei bereits an dieser Stelle angemerkt, dass mit Canvas ein Container bereitgestellt wird, der nicht die beschriebenen Verhaltensweisen zeigt und stattdessen mit absoluten Positionsangaben arbeitet. Auch wenn es möglicherweise sehr verlockend erscheint, sollten Sie diesen Container dennoch nicht einsetzen, um die angebotenen Vorzüge der anderen WPF-Layoutcontainer zu nutzen.

An dieser Stelle sollten wir uns zuerst einen Überblick über die von WPF angebotenen Layoutcontainer verschaffen. Anschließend werden wir uns die Container detailliert ansehen.


Tabelle 18.5 Layoutcontainer im Überblick

Layoutcontainer Kurzbeschreibung

Canvas

Die Steuerelemente werden an einer angegebenen Position in einer festgelegten Größe angezeigt.

DockPanel

Die Steuerelemente können an den Rändern angedockt werden.

Grid

Dieser Container stellt eine tabellenartige Struktur zur Verfügung, in deren Zellen die einzelnen Controls positioniert werden können.

StackPanel

Die Steuerelemente werden vertikal oder horizontal angeordnet (gestapelt).

UniformGrid

Dieser Container stellt ein Raster aus gleich großen Zellen dar.

WrapPanel

Mit diesem Container werden die Controls vertikal oder horizontal angeordnet. Falls die Breite oder die Höhe nicht ausreicht, werden die enthaltenen Steuerelemente in die nächste Zeile umbrochen.



Anmerkung

Auf der Buch-DVD finden Sie unter Kapitel 18 die Projektmappe Layoutcontainer, in der zu jedem der hier behandelten Layoutcontainer ein Beispielprojekt enthalten ist. Die einzelnen Projekte sollen Ihnen eine Testgrundlage zum Layoutcontainer bieten.



Galileo Computing - Zum Seitenanfang

18.2.1 Gemeinsame Eigenschaften der Layoutcontainer topZur vorigen Überschrift

Alle Layoutcontainer sind direkt oder indirekt auf eine gemeinsame Basisklasse zurückzuführen: die Klasse Panel. Damit ist klar, dass alle gemeinsamen Eigenschaften und Methoden in Panel zu finden sind. Um an dieser Stelle alle Eigenschaften und Methoden aufzuführen, ist die Liste zu lang. Stattdessen möchte ich Ihnen einen kleinen Überblick verschaffen, damit Sie eine erste Orientierung finden. Bei Bedarf informieren Sie sich bitte in der Dokumentation.


Tabelle 18.6 Eigenschaften der Klasse »Panel« (Auszug)

Eigenschaft Beschreibung

Background

Hintergrundfarbe des Containers

Children

Liefert die Referenz auf eine Collection (UIElementCollection) von den Komponenten, die sich im Container befinden.

Cursor

Legt den angezeigten Cursor fest.

Focusable

Legt fest, ob der Container fokussierbar ist.

Height

Höhe des Containers

HorizontalAlignment

Beschreibt die horizontale Ausrichtung im Container.

Margin

Legt den Abstand des Containers zu seiner übergeordneten Komponente fest.

MaxHeight

Legt die maximale Höhe des Panels fest.

MaxWidth

Legt die maximale Breite des Panels fest.

MinHeight

Legt die minimale Höhe des Panels fest.

MinWidth

Legt die minimale Breite des Panels fest.

VerticalAlignment

Beschreibt die vertikale Ausrichtung im Container.

Width

Breite des Containers