Galileo Computing < openbook > Galileo Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
Vorwort zur 6. Auflage
1 Allgemeine Einführung in .NET
2 Grundlagen der Sprache C#
3 Das Klassendesign
4 Vererbung, Polymorphie und Interfaces
5 Delegates und Ereignisse
6 Strukturen und Enumerationen
7 Fehlerbehandlung und Debugging
8 Auflistungsklassen (Collections)
9 Generics – Generische Datentypen
10 Weitere C#-Sprachfeatures
11 LINQ
12 Arbeiten mit Dateien und Streams
13 Binäre Serialisierung
14 XML
15 Multithreading und die Task Parallel Library (TPL)
16 Einige wichtige .NET-Klassen
17 Projektmanagement und Visual Studio 2012
18 Einführung in die WPF und XAML
19 WPF-Layout-Container
20 Fenster in der WPF
21 WPF-Steuerelemente
22 Elementbindungen
23 Konzepte von WPF
24 Datenbindung
25 Weitere Möglichkeiten der Datenbindung
26 Dependency Properties
27 Ereignisse in der WPF
28 WPF-Commands
29 Benutzerdefinierte Controls
30 2D-Grafik
31 ADO.NET – Verbindungsorientierte Objekte
32 ADO.NET – Das Command-Objekt
33 ADO.NET – Der SqlDataAdapter
34 ADO.NET – Daten im lokalen Speicher
35 ADO.NET – Aktualisieren der Datenbank
36 Stark typisierte DataSets
37 Einführung in das ADO.NET Entity Framework
38 Datenabfragen des Entity Data Models (EDM)
39 Entitätsaktualisierung und Zustandsverwaltung
40 Konflikte behandeln
41 Plain Old CLR Objects (POCOs)
Stichwort

Download:
- Beispiele, ca. 62,4 MB

Buch bestellen
Ihre Meinung?

Spacer
Visual C# 2012 von Andreas Kühnel
Das umfassende Handbuch
Buch: Visual C# 2012

Visual C# 2012
Rheinwerk Computing
1402 S., 6., aktualisierte und erweiterte Auflage 2013, geb., mit DVD
49,90 Euro, ISBN 978-3-8362-1997-6
Pfeil 20 Fenster in der WPF
Pfeil 20.1 Hosts der WPF
Pfeil 20.2 Fenster vom Typ »Window«
Pfeil 20.2.1 Mehrere Fenster in einer Anwendung
Pfeil 20.3 Fenster vom Typ »NavigationWindow«
Pfeil 20.3.1 Das »Page«-Element
Pfeil 20.4 Hosts vom Typ »Frame«
Pfeil 20.5 Navigation zwischen den Seiten
Pfeil 20.5.1 Navigation mit »HyperLink«
Pfeil 20.5.2 Der Verlauf der Navigation – das Journal
Pfeil 20.5.3 Navigation mit »NavigationService«
Pfeil 20.5.4 Navigation im Internet
Pfeil 20.5.5 Navigieren mit dem Ereignis »RequestNavigate« des »HyperLink«-Elements
Pfeil 20.6 Datenübergabe zwischen den Seiten
Pfeil 20.6.1 Datenübergabe mit der Methode »Navigate«
Pfeil 20.7 Nachrichtenfenster mit »MessageBox«
Pfeil 20.7.1 Die Methode »MessageBox.Show«

Galileo Computing - Zum Seitenanfang

20.3 Fenster vom Typ »NavigationWindow«Zur nächsten Überschrift

Weiter oben wurde schon erklärt, dass ein Fenster vom Typ NavigationWindow dem Benutzer eine Navigation anbietet, die der eines Browsers ähnelt. Die Umsetzung der Navigation macht mit NavigationWindow keine Schwierigkeiten, da alle notwendigen Verhaltensweisen bereits zur Verfügung gestellt werden.

Die Klasse NavigationWindow ist von der Klasse Window abgeleitet und weist daher dieselben Eigenschaften und Methoden auf. Allerdings repräsentiert NavigationWindow nur einen Rahmen als Grundstruktur, der weder Programmlogik noch Steuerelemente enthalten sollte. Dabei ist die Navigationsleiste, mit der der Anwender durch die Seiten navigiert, bereits vordefiniert. Über die Reihenfolge der vom Anwender aufgerufenen Seiten müssen Sie als Entwickler keinen Gedanken verlieren, denn das NavigationWindow protokolliert die aufgerufenen Seiten automatisch in einem Journal.

Innerhalb des NavigationWindow werden die Inhalte durch Page-Objekte beschrieben. Für jeden darzustellenden Inhalt müssen Sie ein Page-Objekt erstellen, das die Logik und die Steuerelemente des Inhalts beschreibt. Page ähnelt zwar in vielerlei Hinsicht dem Inhalt eines Window-Objekts, kann aber nicht ohne einen Host angezeigt werden. Daher werden Sie auch keine Eigenschaften vorfinden, die die Größe und Position eines Page-Objekts betreffen.

Das NavigationWindow wird nicht als Vorlage angeboten. Möchten Sie Ihrer Anwendung ein NavigationWindow hinzufügen, bleibt Ihnen nichts anderes übrig, als zunächst einmal ein Window-Element als Grundlage zu benutzen. Dann müssen Sie drei Punkte »von Hand« erledigen:

  • Ersetzen Sie in der XAML-Datei das Stammelement Window durch NavigationWindow.
  • Löschen Sie das Grid-Element in der XAML-Datei.
  • Passen Sie in der Code-Behind-Datei die Basisklasse an, und ersetzen Sie auch hier Window durch NavigationWindow.

Das folgende Listing zeigt Ihnen die notwendigen Anpassungen.

// im XAML-Code

<NavigationWindow x:Class="WpfApplication1.MainWindow"
xmlns=http://schemas.microsoft.com/winfx/2006/xaml/presentation
xmlns:x=http://schemas.microsoft.com/winfx/2006/xaml
Title="MainWindow" Height="350" Width="525">
</NavigationWindow>

// in der Code-Behind-Datei

public partial class MainWindow : NavigationWindow {
public MainWindow() {
InitializeComponent();
}
}

Listing 20.5 Notwendige Änderungen, um ein »NavigationWindow« bereitzustellen

In der Entwicklungsumgebung sind noch keine Navigationsschaltflächen zu sehen. Dazu müssen Sie erst die Laufzeit starten. In Abbildung 20.2 sehen Sie die Anzeige eines NavigationWindow-Fensters zur Laufzeit, jedoch noch ohne jeglichen Inhalt.

Abbildung

Abbildung 20.2 Das »NavigationWindow« zur Laufzeit


Galileo Computing - Zum Seitenanfang

20.3.1 Das »Page«-ElementZur vorigen Überschrift

Nun ist es Zeit, sich mit der Darstellung der Inhalte in einem NavigationWindow zu beschäftigen. Dazu wird ein Page-Objekt benötigt. Page wird als Vorlage angeboten, so dass Sie eine Page über das Kontextmenü des Projekts im Projektmappen-Explorer sowie die Option Hinzufügen des Projekts bereitstellen können. In der deutschsprachigen Version von Visual Studio 2012 heißt die Vorlage Seite. Dabei wird der folgende XAML-Code erzeugt:

<Page x:Class="WpfApplication1.Page1"
xmlns=http://schemas.microsoft.com/winfx/2006/xaml/presentation
xmlns:x=http://schemas.microsoft.com/winfx/2006/xaml
[...]
Title="Page1">
<Grid>
</Grid>
</Page>

Listing 20.6 XAML-Code der Vorlage »Seite«

Es muss jetzt die Beziehung zwischen dem NavigationWindow und der Page hergestellt werden. Dazu dient die Eigenschaft Source des NavigationWindow.

<NavigationWindow ...
Source="Page1.xaml">
</NavigationWindow>

Listing 20.7 Das »Page«-Objekt dem »NavigationWindow« bekannt geben

Ein NavigationWindow ist in der Lage, als Host für mehrere Page-Objekte seinen Dienst zu tun. Beim Starten der Anwendung wird aber automatisch die Seite aufgerufen, die unter der Eigenschaft Source eingetragen ist.

Die Page hat eine Eigenschaft Title. In der Titelleiste des NavigationWindow wird jedoch nicht der Text angezeigt, den Title beschreibt. Die Eigenschaft Title dient nur als Titelangabe in der Dropdown-Liste, die rechts neben den beiden Navigationsschaltflächen geöffnet werden kann. Um einen spezifischen Text in der Titelleiste des übergeordneten NavigationWindow anzuzeigen, verwenden Sie stattdessen die Eigenschaft WindowTitle der Seite.

Falls es notwendig ist, können Sie die Darstellungsgröße des NavigationWindow an den Inhalt der Page anpassen. Legen Sie dazu die Eigenschaften WindowHeight und WindowWidth der Seite fest. Möchten Sie mit Links oder beispielsweise Buttons selbst die Navigation in die Hand nehmen, können Sie mit

ShowNavigationUI=false

die Navigationssteuerelemente im Container ausblenden.

Es werden nur sehr wenige spezifische Informationen gespeichert, wenn eine Page zur Laufzeit der Anwendung verlassen wird. Viele Einstellungen der Seite gehen dadurch verloren. Dieses Verhalten dient der Schonung der Speicherressourcen. Andererseits kann es problematisch werden, wenn die Seite Objekte erzeugt hat, die später noch einmal verwendet werden müssen. Mit der Einstellung

KeepAlive=true

lässt sich das Standardverhalten ändern (die Standardvorgabe lautet false). Die Seite wird dann komplett im Speicher gehalten. In Abschnitt 20.5.2 kommen wir auf diese Thematik noch einmal zurück.

Die bisher erwähnten Eigenschaften eines NavigationWindow sind in Tabelle 20.2 wegen des besseren Überblicks noch einmal aufgeführt.

Tabelle 20.2 Spezifische Eigenschaften einer Seite (Auszug)

Eigenschaft Beschreibung

KeepAlive

Legt fest, ob die Seite im Speicher gehalten wird. Die Vorgabe ist false.

ShowNavigationUI

Legt fest, ob die Navigationsschaltflächen angezeigt werden. Die Vorgabe ist true.

Title

Legt den Titel der Page fest.

WindowHeight

Legt die Höhe des Hosts der Seite fest.

WindowTitle

Legt den Titel des Hosts fest.

WindowWidth

Legt die Breite des Hosts der Seite fest.



Ihr Kommentar

Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen.

>> Zum Feedback-Formular
<< zurück
  Zum Katalog
Zum Katalog: Visual C# 2012

Visual C# 2012
Jetzt bestellen


 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchempfehlungen
Zum Katalog: Professionell entwickeln mit Visual C# 2012






 Professionell
 entwickeln mit
 Visual C# 2012


Zum Katalog: Windows Presentation Foundation






 Windows Presentation
 Foundation


Zum Katalog: Schrödinger programmiert C++






 Schrödinger
 programmiert C++


Zum Katalog: C++ Handbuch






 C++ Handbuch


Zum Katalog: C/C++






 C/C++


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo





Copyright © Rheinwerk Verlag GmbH 2013
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Rheinwerk Computing]

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de