20 Fenster in der WPF
In einer traditionellen Windows-Anwendung wird die Laufzeit der Anwendung hauptsächlich über Menüs und Symbolleistenschaltflächen gesteuert. Der Anwender wählt zum Beispiel ein Menü aus, worauf sich ein neues Fenster öffnet. Nicht ungewöhnlich ist es, dass dabei viele Fenster der Anwendung gleichzeitig geöffnet sind und der Anwender zwischen diesen Fenstern hin- und herspringt.
Dieses Interaktionsverhalten ist auch mit WPF-Anwendungen möglich. Grundlage dieser Art der Navigation zwischen verschiedenen Inhalten ist das Element Window. Andererseits wird innerhalb des Browsers ein gänzlich anderes, seitenbasiertes Navigationsmodell verwendet. Hier ermöglichen zwei Schaltflächen das Vor- und Zurückspringen zur Anzeige der unterschiedlichen Seiteninhalte.
In der Welt der Anwendungen werden also zwei grundsätzlich unterschiedliche Navigationsverfahren benutzt. Es ist erfreulich, dass die WPF beide Verfahren unterstützt. Dabei lässt sich das vom Browser her bekannte seitenbasierte Navigieren auch in einem gewöhnlichen Fenster integrieren, ohne dass dabei der Browser als Host unbedingt erforderlich wäre (was zwar möglich ist, wir aber im Rahmen dieses Buches nicht behandeln).
20.1 Hosts der WPF
Zur Umsetzung der beiden Navigationsverfahren werden von der WPF sogar drei unterschiedliche Hosts angeboten:
- Window
- NavigationWindow
- Frame
Bei Window handelt es sich um die Umsetzung eines klassischen Fensters. Dabei werden die Inhalte in mehreren separaten Fenstern angezeigt. Der Anwender navigiert durch die Anwendung, indem er immer wieder neue Fenster öffnet und schließt. Solche Anwendungen setzen sich daher in der Regel aus vielen einzelnen Fenstern zusammen. Nicht selten ist die Folge, dass zur Laufzeit eines Programms viele unterschiedliche Fenster der Anwendung geöffnet sind.
Das Navigationskonzept der Fenster vom Typ NavigationWindow erinnert an das Navigieren innerhalb eines Internet-Browsers, bei dem unterschiedliche Inhalte in einem gemeinsamen Fenster dargestellt werden. Setzen Sie diese Idee mit NavigationWindow in einer WPF-Anwendung um, werden nur die Inhalte auf mehrere Seiten vom Typ Page aufgeteilt, die untereinander verlinkt sind. Der Anwender navigiert durch die Anwendung, ohne gleichzeitig mehrere Fenster öffnen zu können, da ein NavigationWindow allen beteiligten Seiten als gemeinsamer Host dient. Zur Navigation stehen wie im Browser eine Vor- und eine Zurück-Schaltfläche zur Verfügung. Wahrscheinlich haben Sie mit diesem Fenstertyp bereits Bekanntschaft gemacht, denn spätestens seit Vista wird diese Navigationstechnik auch vom Betriebssystem vermehrt eingesetzt. Ein typisches Beispiel ist das Fenster Systemsteuerung (siehe Abbildung 20.1).
Abbildung 20.1 Die Systemsteuerung von Windows 7
Da ein NavigationWindow mit seinen angestammten Navigationsschaltflächen dem Element Window eines traditionellen Fensters nicht untergeordnet werden kann, wird die dritte Alternative in Form des Frame-Elements angeboten. Es dient dazu, auch innerhalb eines Window-Elements die seitenbasierte Navigation zu ermöglichen.
Die WPF unterstützt keine MDI-Fenster. Möchten Sie dennoch diese Art der Fensterverwaltung einsetzen, müssen Sie das mit Hilfe der Interop-Techniken umsetzen.
Ihre Meinung
Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.