Dela via


Översikt över navigeringstopologier

Den här översikten ger en introduktion till navigeringstopologier i WPF. Tre vanliga navigeringstopologier, med exempel, diskuteras senare.

Anmärkning

Innan du läser det här avsnittet bör du känna till begreppet strukturerad navigering i WPF med hjälp av sidfunktioner. Mer information om båda dessa ämnen finns i Översikt över strukturerad navigering.

Det här avsnittet innehåller följande avsnitt:

I WPF består navigeringen vanligtvis av sidor (Page) med hyperlänkar (Hyperlink) som navigerar till andra sidor när de klickas. Sidor som navigeras till identifieras av enhetliga resursidentifierare (URI:er) (se Paket-URI:er i WPF). Tänk dig följande enkla exempel som visar sidor, hyperlänkar och enhetliga resursidentifierare (URI:er):

<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>

Dessa sidor ordnas i en navigeringstopologi vars struktur bestäms av hur du kan navigera mellan sidorna. Den här navigeringstopologin är lämplig i enkla scenarier, även om navigering kan kräva mer komplexa topologier, varav vissa bara kan definieras när ett program körs.

Det här avsnittet beskriver tre vanliga navigeringstopologier: fast linjär, fast hierarkisk och dynamiskt genererad. Varje navigeringstopologi visas med ett exempel som har ett användargränssnitt som det som visas i följande bild:

Aktivitetssidor med dataobjekt och navigeringsknappar.

Strukturerade navigeringstopologier

Det finns två breda typer av navigeringstopologier:

  • Fast topologiologi: definieras vid kompileringstid och ändras inte under körning. Fasta topologier är användbara för navigering via en fast sekvens med sidor i antingen linjär eller hierarkisk ordning.

  • Dynamisk topologi: definieras vid körningen baserat på indata som samlas in från användaren, programmet eller systemet. Dynamiska topologier är användbara när sidor kan navigeras i olika sekvenser.

Även om det är möjligt att skapa navigeringstopologier med hjälp av sidor använder exemplen sidfunktioner eftersom de ger ytterligare stöd som förenklar stödet för att skicka och returnera data via sidorna i en topologi.

En fast linjär topologi motsvarar strukturen för en guide som har en eller flera guidesidor som navigeras i en fast sekvens. Följande bild visar den övergripande strukturen och flödet i ett trollkarlsgränssnitt med en fast linjär topologi.

Diagram som visar en fast linjär topologi.

Vanliga beteenden för att navigera över en fast linjär topologi är följande:

  • Navigera från samtalssidan till en startsida som initierar guiden och navigerar till den första guidesidan. En startsida (ett användargränssnittslöst PageFunction<T>) krävs inte, eftersom en anropande sida kan anropa den första guidsidan direkt. Om du använder en startsida kan du dock förenkla initieringen av guiden, särskilt om initieringen är komplex.

  • Användare kan navigera mellan sidor med knapparna Bakåt och Framåt (eller hyperlänkar).

  • Användare kan navigera mellan sidor med hjälp av journalen.

  • Användare kan avbryta guiden från valfri guidesida genom att trycka på knappen Avbryt.

  • Användare kan acceptera guiden på den senaste guidesidan genom att trycka på knappen Slutför.

  • Om en guide avbryts returnerar guiden ett lämpligt resultat och returnerar inga data.

  • Om en användare accepterar en guide returnerar guiden ett lämpligt resultat och returnerar de data som samlas in.

  • När guiden är klar (accepterad eller avslutad) tas de sidor som guiden består av bort från journalen. Detta håller varje instans av guiden isolerad och därmed undviks potentiella data- eller tillståndsavvikelser.

Dynamisk navigering över en fast hierarkisk topologi

I vissa program tillåter sidor navigering till två eller flera andra sidor, enligt följande bild:

Diagram som visar en sida som kan navigera till flera sidor.

Den här strukturen kallas för en fast hierarkisk topologi, och sekvensen där hierarkin passerar bestäms ofta vid körning av antingen programmet eller användaren. Vid körning samlar varje sida i hierarkin som tillåter navigering till två eller flera andra sidor de data som krävs för att avgöra vilken sida som ska navigeras till. Följande bild illustrerar en av flera möjliga navigeringssekvenser baserat på föregående bild:

Diagram som visar en möjlig navigeringssekvens.

Även om sekvensen där sidor i en fast hierarkisk struktur navigeras bestäms vid körning är användarupplevelsen densamma som användarupplevelsen för en fast linjär topologi:

  • Navigera från samtalssidan till en startsida som initierar guiden och navigerar till den första guidesidan. En startsida (ett användargränssnittslöst PageFunction<T>) krävs inte, eftersom en anropande sida kan anropa den första guidsidan direkt. Om du använder en startsida kan du dock förenkla initieringen av guiden, särskilt om initieringen är komplex.

  • Användare kan navigera mellan sidor med knapparna Bakåt och Framåt (eller hyperlänkar).

  • Användare kan navigera mellan sidor med hjälp av journalen.

  • Användare kan ändra navigeringssekvensen om de navigerar tillbaka genom journalen.

  • Användare kan avbryta guiden från valfri guidesida genom att trycka på knappen Avbryt.

  • Användare kan acceptera guiden på den senaste guidesidan genom att trycka på knappen Slutför.

  • Om en guide avbryts returnerar guiden ett lämpligt resultat och returnerar inga data.

  • Om en användare accepterar en guide returnerar guiden ett lämpligt resultat och returnerar de data som samlas in.

  • När guiden är klar (accepterad eller avslutad) tas de sidor som guiden består av bort från journalen. Detta håller varje instans av guiden isolerad och därmed undviks potentiella data- eller tillståndsavvikelser.

I vissa program kan sekvensen där två eller flera sidor navigeras endast bestämmas vid körning, antingen av användaren, programmet eller externa data. Följande bild illustrerar en uppsättning sidor med en obestämd navigeringssekvens:

En uppsättning sidor med en obestämd navigeringssekvens.

Nästa bild illustrerar en navigeringssekvens som valdes av användaren vid körning:

Diagram som visar en navigeringssekvens som valts vid körning.

Navigeringssekvensen kallas för en dynamiskt genererad topologi. För användaren, precis som med de andra navigeringstopologierna, är användarupplevelsen densamma som för de tidigare topologierna:

  • Navigera från samtalssidan till en startsida som initierar guiden och navigerar till den första guidesidan. En startsida (ett användargränssnittslöst PageFunction<T>) krävs inte, eftersom en anropande sida kan anropa den första guidsidan direkt. Om du använder en startsida kan du dock förenkla initieringen av guiden, särskilt om initieringen är komplex.

  • Användare kan navigera mellan sidor med knapparna Bakåt och Framåt (eller hyperlänkar).

  • Användare kan navigera mellan sidor med hjälp av journalen.

  • Användare kan avbryta guiden från valfri guidesida genom att trycka på knappen Avbryt.

  • Användare kan acceptera guiden på den senaste guidesidan genom att trycka på knappen Slutför.

  • Om en guide avbryts returnerar guiden ett lämpligt resultat och returnerar inga data.

  • Om en användare accepterar en guide returnerar guiden ett lämpligt resultat och returnerar de data som samlas in.

  • När guiden är klar (accepterad eller avslutad) tas de sidor som guiden består av bort från journalen. Detta håller varje instans av guiden isolerad och därmed undviks potentiella data- eller tillståndsavvikelser.

Se även