Layoutpanels sind dynamisch. Das heisst, ein Control ist nicht fix auf eine
Stelle positioniert wie dies in früheren Anwendungen der Fall war. Es kann seine
Position im Fenster ändern, je nach dem wie gross das Fenster gemacht wird oder
wie sich auch zum Beispiel der Inhalt eines Textfeldes ändert. So ist zum
Beispiel die englische Sprache kürzer als die deutsche Sprache und der Text
"Turn of" benötigt eine andere Breite als "Ausschalten".
Grund für dynamische Layoutpanels:
Unterschiedliche Sprachen haben unterschiedliche Längen
Unterschiedliche Bildschirmauflösungen
Problemzonen:
Performance bei vielen verschachtelten Layoutcontainer z.B. beim Aufbau
oder Resize.
Layoutcontainer
Verfügbar in
Beschreibung
Win
WPF
Web
Panel
Für eigene Layoutbehälter
Canvas
fix positionierbar
DockPanel
Controls werden an Rand angehängt oder füllt das Panel
Grid
Das vermutlich am meisten eingesetzte Layoutpanel. Ein Gitter wie
eine Tabelle. In jede Zelle können Cntrols gesetzt werden. Ein Controll
kann über mehrere Zellen gestreckt werden.
StackPanel
Controls werden nebeneinander (horicontal) oder übereinander (vertical)
gestapelt.
UniformGrid
VirtualizingPanel
Es werden nur die Controls geladen welche auch angezeigt werden.
WrapPanel
TabPanel
ToolBarPanel
ToolBarOverflowPanel
ViewBox
Enthält genau ein Element undermöglicht ein Strecken oder Skalieren
des enthaltenen Elementes.
Ein Gitter in dessen Zellen einzelne Controls platziert werden können. Jedes
Controll kann sich über mehrere Gitterzellen erstrecken.
Durch klicken auf die blauen Gitterränder lassen sich weitere Zeilen/Spalten
erzeugen.
Eigenschaften des Grid
Spaltenbreiten bestimmen
Width="20" macht 20 Punke breit
width="*" macht so breit wie Platz verfügbar ist
width = "2*" macht doppelt so breit wie
width="*"
width="2*"
width="2*"
Width="*"
wir haben 6 Einheiten. 1. Zelle ist 1 Einheit breit, zweite ist 2
Einheiten breit.
Zusätzliche Eigenschaften der Controls
Egenschaft
Beschreibung
Grid.Column
Grid.Row="2"
In welcher Spalte/Zeile sich das Control befindet
Grid.ColumnSpan = "2"
Grid.RowSpan = "4"
über wie viele Spalten/Zeilen sich das Control ausbreitet
Horizontal Alignment
Vertical Alignment
Wie sich das Control in der Grid-Zelle ausrichtet
Dock Panel
Tip: Breite nicht angeben, dann streckt sich ein Element über den
gesamten Bereich
Tip: Äussere Panels im Code höher als innere Panels positionieren
Tip: Fill, bekannt aus WinForm gibt es nicht mehr. Dafür können mehrere
Controls identisch gedockt werden. Mehrere Elemente rechts gedockt, stapeln
sich von rechts beginnend.
Wrap Panel
Beschreibung des Wrap Panel
Die Controls reihen sich eines nach dem anderen auf.