Übersicht über Navigationstopologien
Diese Übersicht bietet eine Einführung in Navigationstopologien in WPF. Anschließend werden drei allgemeine Navigationstopologien mit Beispielen erläutert.
Anmerkung
Bevor Sie dieses Thema lesen, sollten Sie mit dem Konzept der strukturierten Navigation in WPF mithilfe von Seitenfunktionen vertraut sein. Weitere Informationen zu diesen beiden Themen finden Sie unter Übersicht über die strukturierte Navigation.
Dieses Thema enthält die folgenden Abschnitte:
Navigationstopologien
In WPF besteht die Navigation in der Regel aus Seiten (Page) mit Links (Hyperlink), die zu anderen Seiten navigieren, wenn darauf geklickt wird. Seiten, zu denen eine Navigation erfolgt, werden durch URIs (Uniform Resource Indentifiers) identifiziert (weitere Informationen unter Paket-URI in WPF). Sehen Sie sich das folgende einfache Beispiel an, in dem Seiten, Hyperlinks und uniform Resource Identifiers (URIs) angezeigt werden:
<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" WindowTitle="Page1">
<Hyperlink NavigateUri="Page2.xaml">Navigate to Page2</Hyperlink>
</Page>
<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" WindowTitle="Page2">
<Hyperlink NavigateUri="Page1.xaml">Navigate to Page1</Hyperlink>
</Page>
Die Seiten sind in einer -Navigationstopologie angeordnet, deren Struktur dadurch bestimmt wird, wie Sie zwischen den Seiten navigieren können. Diese spezielle Navigationstopologie eignet sich in einfachen Szenarien, obwohl die Navigation komplexere Topologien erfordern kann, von denen einige nur definiert werden können, wenn eine Anwendung ausgeführt wird.
In diesem Thema werden drei allgemeine Navigationstopologien behandelt: feste lineare, feste hierarchischeund dynamisch generierte. Jede Navigationstopologie wird mit einem Beispiel veranschaulicht, das eine Benutzeroberfläche wie die in der folgenden Abbildung gezeigte enthält:
Strukturierte Navigationstopologien
Es gibt zwei allgemeine Arten von Navigationstopologien:
Festgelegte Topologie: zur Kompilierungszeit definiert und ändert sich nicht während der Laufzeit. Feste Topologien sind nützlich für die Navigation über eine feste Abfolge von Seiten in einer linearen oder hierarchischen Reihenfolge.
Dynamische Topologie: Diese Topologie wird zur Laufzeit und auf Grundlage von Eingaben definiert, die manuell, von der Anwendung oder vom System erfasst werden. Dynamische Topologien sind nützlich, wenn Seiten in verschiedenen Sequenzen navigiert werden können.
Obwohl es möglich ist, Navigationstopologien mithilfe von Seiten zu erstellen, verwenden die Beispiele Seitenfunktionen, da sie zusätzliche Unterstützung bieten, die die Unterstützung für das Übergeben und Zurückgeben von Daten über die Seiten einer Topologie vereinfacht.
Navigation über eine feste lineare Topologie
Die Struktur einer festen linearen Topologie entspricht der eines Assistenten, der aus mindestens einer Seite besteht, durch die in einer festen Reihenfolge navigiert wird. Die folgende Abbildung zeigt den Verlauf eines Assistenten mit einer festen linearen Topologie sowie dessen Struktur auf oberster Ebene:
Die typischen Verhaltensweisen für die Navigation über eine feste lineare Topologie umfassen Folgendes:
Die Navigation von einer aufrufenden zu einer startenden Seite, die den Assistenten initialisiert und zur ersten Seite des Assistenten navigiert. Eine Starterseite (eine PageFunction<T> ohne Benutzeroberfläche) ist nicht erforderlich, da eine aufrufende Seite die erste Seite des Assistenten direkt aufrufen kann. Durch die Verwendung einer startenden Seite kann die Initialisierung des Assistenten jedoch vereinfacht werden, insbesondere wenn die Initialisierung komplex ist.
Benutzer können mithilfe der Schaltflächen "Zurück" und "Vorwärts" (oder "Hyperlinks") zwischen Seiten navigieren.
Benutzer können mithilfe des Journals zwischen Seiten navigieren.
Benutzende können den Assistenten auf jeder Assistentenseite abbrechen, indem sie auf die Schaltfläche „Abbrechen“ klicken.
Benutzer können den Assistenten auf der letzten Assistentenseite abschließen, indem sie auf die Schaltfläche „Fertig stellen“ klicken.
Wenn ein Assistent abgebrochen wird, gibt der Assistent ein entsprechendes Ergebnis und keine Daten zurück.
Wenn ein Assistent abgeschlossen wird, gibt der Assistent ein entsprechendes Ergebnis und die gesammelten Daten zurück.
Wenn der Assistent abgeschlossen oder abgebrochen wird, werden die Seiten, die der Assistent umfasst, aus dem Journal entfernt. Dadurch bleibt jede Instanz des Assistenten isoliert, und potenzielle Daten- oder Zustandsanomalien werden vermieden.
Dynamische Navigation über eine feste hierarchische Topologie
In einigen Anwendungen ermöglichen Seiten die Navigation auf zwei oder mehr andere Seiten, wie in der folgenden Abbildung dargestellt:
Diese Struktur wird als feste hierarchische Topologie bezeichnet, und die Reihenfolge, in der die Hierarchie durchlaufen wird, wird häufig zur Laufzeit durch die Anwendung oder den Benutzer bestimmt. Zur Laufzeit sammelt jede Seite in der Hierarchie, die die Navigation zu zwei oder mehr anderen Seiten ermöglicht, die daten, die erforderlich sind, um zu bestimmen, zu welcher Seite navigiert werden soll. Die folgende Abbildung zeigt eine von mehreren möglichen Navigationssequenzen basierend auf der vorherigen Abbildung:
Obwohl die Reihenfolge, in der Seiten in einer festen hierarchischen Struktur navigiert werden, zur Laufzeit bestimmt wird, ist die Benutzeroberfläche mit der Benutzeroberfläche für eine feste lineare Topologie identisch:
Die Navigation von einer aufrufenden zu einer startenden Seite, die den Assistenten initialisiert und zur ersten Seite des Assistenten navigiert. Eine Starterseite (eine PageFunction<T> ohne Benutzeroberfläche) ist nicht erforderlich, da eine aufrufende Seite die erste Seite des Assistenten direkt aufrufen kann. Durch die Verwendung einer startenden Seite kann die Initialisierung des Assistenten jedoch vereinfacht werden, insbesondere wenn die Initialisierung komplex ist.
Benutzer können mithilfe der Schaltflächen "Zurück" und "Vorwärts" (oder "Hyperlinks") zwischen Seiten navigieren.
Benutzer können mithilfe des Journals zwischen Seiten navigieren.
Benutzer können die Navigationssequenz ändern, wenn sie wieder durch das Journal navigieren.
Benutzende können den Assistenten auf jeder Assistentenseite abbrechen, indem sie auf die Schaltfläche „Abbrechen“ klicken.
Benutzer können den Assistenten auf der letzten Assistentenseite abschließen, indem sie auf die Schaltfläche „Fertig stellen“ klicken.
Wenn ein Assistent abgebrochen wird, gibt der Assistent ein entsprechendes Ergebnis und keine Daten zurück.
Wenn ein Assistent abgeschlossen wird, gibt der Assistent ein entsprechendes Ergebnis und die gesammelten Daten zurück.
Wenn der Assistent abgeschlossen oder abgebrochen wird, werden die Seiten, die der Assistent umfasst, aus dem Journal entfernt. Dadurch bleibt jede Instanz des Assistenten isoliert, und potenzielle Daten- oder Zustandsanomalien werden vermieden.
Navigation über eine dynamisch generierte Topologie
In einigen Anwendungen kann die Reihenfolge, in der zwei oder mehr Seiten durchlaufen werden, erst zur Laufzeit bestimmt werden, sei es durch den Benutzer, die Anwendung oder durch externe Daten. Die folgende Abbildung zeigt eine Reihe von Seiten mit einer unbestimmten Navigationssequenz:
Die nächste Abbildung zeigt eine Navigationssequenz, die vom Benutzer zur Laufzeit ausgewählt wurde:
Die Navigationssequenz wird als dynamisch generierte Topologie bezeichnet. Wie bei den anderen Navigationstopologien ist die Benutzeroberfläche für den Benutzer identisch mit den vorherigen Topologien:
Die Navigation von einer aufrufenden zu einer startenden Seite, die den Assistenten initialisiert und zur ersten Seite des Assistenten navigiert. Eine Starterseite (eine PageFunction<T> ohne Benutzeroberfläche) ist nicht erforderlich, da eine aufrufende Seite die erste Seite des Assistenten direkt aufrufen kann. Durch die Verwendung einer startenden Seite kann die Initialisierung des Assistenten jedoch vereinfacht werden, insbesondere wenn die Initialisierung komplex ist.
Benutzer können mithilfe der Schaltflächen "Zurück" und "Vorwärts" (oder "Hyperlinks") zwischen Seiten navigieren.
Benutzer können mithilfe des Journals zwischen Seiten navigieren.
Benutzende können den Assistenten auf jeder Assistentenseite abbrechen, indem sie auf die Schaltfläche „Abbrechen“ klicken.
Benutzer können den Assistenten auf der letzten Assistentenseite abschließen, indem sie auf die Schaltfläche „Fertig stellen“ klicken.
Wenn ein Assistent abgebrochen wird, gibt der Assistent ein entsprechendes Ergebnis und keine Daten zurück.
Wenn ein Assistent abgeschlossen wird, gibt der Assistent ein entsprechendes Ergebnis und die gesammelten Daten zurück.
Wenn der Assistent abgeschlossen oder abgebrochen wird, werden die Seiten, die der Assistent umfasst, aus dem Journal entfernt. Dadurch bleibt jede Instanz des Assistenten isoliert, und potenzielle Daten- oder Zustandsanomalien werden vermieden.
Weitere Informationen
.NET Desktop feedback