Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Dit overzicht biedt een inleiding tot navigatietopologieën in WPF. Drie algemene navigatietopologieën, met voorbeelden, worden vervolgens besproken.
Opmerking
Voordat u dit onderwerp leest, moet u bekend zijn met het concept van gestructureerde navigatie in WPF met behulp van paginafuncties. Zie Overzicht van gestructureerde navigatievoor meer informatie over beide onderwerpen.
Dit onderwerp bevat de volgende secties:
dynamische navigatie via een vaste hiërarchische topologie
Navigatietopologieën
In WPF bestaat navigatie meestal uit pagina's (Page) met hyperlinks (Hyperlink) die naar andere pagina's navigeren wanneer erop wordt geklikt. Pagina's waarnaar wordt genavigeerd, worden geïdentificeerd door uniform resource-id's (URI's) (zie Pack-URI's in WPF). Bekijk het volgende eenvoudige voorbeeld met pagina's, hyperlinks en uniform resource-id's (URI's):
<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>
Deze pagina's worden gerangschikt in een navigatietopologie waarvan de structuur wordt bepaald door hoe u tussen de pagina's kunt navigeren. Deze specifieke navigatietopologie is geschikt in eenvoudige scenario's, hoewel navigatie complexere topologieën kan vereisen, waarvan sommige alleen kunnen worden gedefinieerd wanneer een toepassing wordt uitgevoerd.
In dit onderwerp worden drie algemene navigatietopologieën behandeld: vaste lineaire, vaste hiërarchischeen dynamisch gegenereerde. Elke navigatietopologie wordt gedemonstreerd met een voorbeeld met een gebruikersinterface zoals die in de volgende afbeelding wordt weergegeven:
Gestructureerde navigatietopologieën
Er zijn twee algemene typen navigatietopologieën:
vaste topologie: gedefinieerd tijdens het compileren en wordt niet gewijzigd tijdens runtime. Vaste topologieën zijn handig voor navigatie door een vaste reeks pagina's in een lineaire of hiërarchische volgorde.
dynamische topologie: gedefinieerd tijdens runtime op basis van invoer die wordt verzameld van de gebruiker, de toepassing of het systeem. Dynamische topologieën zijn handig wanneer pagina's in verschillende volgorden kunnen worden genavigeerd.
Hoewel het mogelijk is om navigatietopologieën te maken met behulp van pagina's, gebruiken de voorbeelden paginafuncties omdat ze extra ondersteuning bieden die de ondersteuning voor het doorgeven en retourneren van gegevens via de pagina's van een topologie vereenvoudigt.
Navigatie over een vaste lineaire topologie
Een vaste lineaire topologie is vergelijkbaar met de structuur van een wizard met een of meer wizardpagina's die in een vaste volgorde worden genavigeerd. In de volgende afbeelding ziet u de structuur en stroom op hoog niveau van een wizard met een vaste lineaire topologie:
Het typische gedrag voor het navigeren over een vaste lineaire topologie omvat het volgende:
Navigeren vanaf de aanroepende pagina naar een startpagina die de wizard initialiseert en naar de eerste wizardpagina navigeert. Een startprogrammapagina (een gebruikersinterface zonder PageFunction<T>) is niet vereist, omdat een aanroeppagina de eerste wizardpagina rechtstreeks kan aanroepen. Het gebruik van een startprogrammapagina kan echter de initialisatie van de wizard vereenvoudigen, met name als initialisatie complex is.
Gebruikers kunnen tussen pagina's navigeren met de knoppen Vorige en Doorsturen (of hyperlinks).
Gebruikers kunnen navigeren tussen pagina's met behulp van het logboek.
Gebruikers kunnen de wizard annuleren vanaf elke wizardpagina door op een knop Annuleren te drukken.
Gebruikers kunnen de wizard accepteren op de laatste wizardpagina door op een knop Voltooien te drukken.
Als een wizard wordt geannuleerd, geeft de wizard een geschikt resultaat en retourneert geen gegevens.
Als een gebruiker een wizard accepteert, retourneert de wizard een geschikt resultaat en worden de verzamelde gegevens geretourneerd.
Wanneer de wizard is voltooid (geaccepteerd of geannuleerd), worden de pagina's die de wizard omvat uit het logboek verwijderd. Hierdoor wordt elk exemplaar van de wizard geïsoleerd, waardoor potentiële gegevens of statusafwijkingen worden vermeden.
Dynamische navigatie via een vaste hiërarchische topologie
In sommige toepassingen kunnen pagina's navigatie naar twee of meer andere pagina's toestaan, zoals wordt weergegeven in de volgende afbeelding:
Deze structuur wordt een vaste hiërarchische topologie genoemd en de volgorde waarin de hiërarchie wordt doorkruist, wordt vaak bepaald tijdens runtime door de toepassing of de gebruiker. Tijdens runtime verzamelt elke pagina in de hiërarchie waarmee u kunt navigeren naar twee of meer andere pagina's de gegevens die nodig zijn om te bepalen naar welke pagina u wilt navigeren. In de volgende afbeelding ziet u een van de verschillende mogelijke navigatiereeksen op basis van de vorige afbeelding:
Hoewel de volgorde waarin pagina's in een vaste hiërarchische structuur worden genavigeerd, tijdens runtime wordt bepaald, is de gebruikerservaring hetzelfde als de gebruikerservaring voor een vaste lineaire topologie:
Navigeren vanaf de aanroepende pagina naar een startpagina die de wizard initialiseert en naar de eerste wizardpagina navigeert. Een startprogrammapagina (een gebruikersinterface zonder PageFunction<T>) is niet vereist, omdat een aanroeppagina de eerste wizardpagina rechtstreeks kan aanroepen. Het gebruik van een startprogrammapagina kan echter de initialisatie van de wizard vereenvoudigen, met name als initialisatie complex is.
Gebruikers kunnen tussen pagina's navigeren met de knoppen Vorige en Doorsturen (of hyperlinks).
Gebruikers kunnen navigeren tussen pagina's met behulp van het logboek.
Gebruikers kunnen de navigatiereeks wijzigen als ze teruggaan door het logboek.
Gebruikers kunnen de wizard annuleren vanaf elke wizardpagina door op een knop Annuleren te drukken.
Gebruikers kunnen de wizard accepteren op de laatste wizardpagina door op een knop Voltooien te drukken.
Als een wizard wordt geannuleerd, geeft de wizard een geschikt resultaat en retourneert geen gegevens.
Als een gebruiker een wizard accepteert, retourneert de wizard een geschikt resultaat en worden de verzamelde gegevens geretourneerd.
Wanneer de wizard is voltooid (geaccepteerd of geannuleerd), worden de pagina's die de wizard omvat uit het logboek verwijderd. Hierdoor wordt elk exemplaar van de wizard geïsoleerd, waardoor potentiële gegevens of statusafwijkingen worden vermeden.
Navigatie over een dynamisch gegenereerde topologie
In sommige toepassingen kan de volgorde waarin twee of meer pagina's worden genavigeerd, alleen worden bepaald tijdens runtime, of dit nu door de gebruiker, de toepassing of externe gegevens is. In de volgende afbeelding ziet u een reeks pagina's met een onbepaalde navigatiereeks:
In de volgende afbeelding ziet u een navigatiereeks die is gekozen door de gebruiker tijdens runtime:
De navigatiereeks wordt een dynamisch gegenereerde topologie genoemd. Voor de gebruiker, net als bij de andere navigatietopologieën, is de gebruikerservaring hetzelfde als voor de vorige topologieën:
Navigeren vanaf de aanroepende pagina naar een startpagina die de wizard initialiseert en naar de eerste wizardpagina navigeert. Een startprogrammapagina (een gebruikersinterface zonder PageFunction<T>) is niet vereist, omdat een aanroeppagina de eerste wizardpagina rechtstreeks kan aanroepen. Het gebruik van een startprogrammapagina kan echter de initialisatie van de wizard vereenvoudigen, met name als initialisatie complex is.
Gebruikers kunnen tussen pagina's navigeren met de knoppen Vorige en Doorsturen (of hyperlinks).
Gebruikers kunnen navigeren tussen pagina's met behulp van het logboek.
Gebruikers kunnen de wizard annuleren vanaf elke wizardpagina door op een knop Annuleren te drukken.
Gebruikers kunnen de wizard accepteren op de laatste wizardpagina door op een knop Voltooien te drukken.
Als een wizard wordt geannuleerd, geeft de wizard een geschikt resultaat en retourneert geen gegevens.
Als een gebruiker een wizard accepteert, retourneert de wizard een geschikt resultaat en worden de verzamelde gegevens geretourneerd.
Wanneer de wizard is voltooid (geaccepteerd of geannuleerd), worden de pagina's die de wizard omvat uit het logboek verwijderd. Hierdoor wordt elk exemplaar van de wizard geïsoleerd, waardoor potentiële gegevens of statusafwijkingen worden vermeden.
Zie ook
.NET Desktop feedback