Přehled topologií navigace

Tento přehled obsahuje úvod k navigačním topologiím ve WPF. Následně jsou popsány tři společné topologie navigace s ukázkami.

Poznámka:

Než si přečtete toto téma, měli byste být obeznámeni s konceptem strukturované navigace ve WPF pomocí funkcí stránky. Další informace o obou těchto tématech najdete v tématu Přehled strukturované navigace.

Toto téma obsahuje následující části:

Navigace ve WPF se obvykle skládá ze stránek (Page) s hypertextovými odkazy (Hyperlink), které při kliknutí přechádnou na jiné stránky. Stránky, na které se přejdou, jsou identifikovány jednotnými identifikátory prostředků (URI) (viz identifikátory URI balíčků ve WPF). Podívejte se na následující jednoduchý příklad, který zobrazuje stránky, hypertextové odkazy a identifikátory URI prostředků:

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

Tyto stránky jsou uspořádány v navigační topologii , jejíž struktura je určena způsobem procházení mezi stránkami. Tato konkrétní navigační topologie je vhodná v jednoduchých scénářích, i když navigace může vyžadovat složitější topologie, z nichž některé je možné definovat pouze při spuštění aplikace.

Toto téma se věnuje třem běžným navigačním topologiím: pevné lineární, pevné hierarchické a dynamicky generované. Každá navigační topologie se ukazuje s ukázkou s uživatelským rozhraním, jako je uživatelské rozhraní, které je znázorněno na následujícím obrázku:

Task pages with data items and navigation buttons.

Topologie strukturované navigace

Existují dva široké typy navigačních topologií:

  • Pevná topologie: definovaná v době kompilace a v době běhu se nemění. Pevné topologie jsou užitečné pro navigaci v pevné sekvenci stránek v lineárním nebo hierarchickém pořadí.

  • Dynamická topologie: definována za běhu na základě vstupu, který se shromažďuje od uživatele, aplikace nebo systému. Dynamické topologie jsou užitečné, když se stránky dají procházet v různých sekvencích.

I když je možné vytvořit navigační topologie pomocí stránek, ukázky používají funkce stránky, protože poskytují další podporu, která zjednodušuje podporu pro předávání a vracení dat prostřednictvím stránek topologie.

Pevná lineární topologie je podobná struktuře průvodce, která má jednu nebo více stránek průvodce, které jsou přecháděny v pevné sekvenci. Následující obrázek znázorňuje strukturu vysoké úrovně a tok průvodce s pevnou lineární topologií:

Diagram that shows a fixed linear topology.

Mezi typické chování při navigaci přes pevnou lineární topologii patří:

  • Přechod z volající stránky na stránku spouštěče, která inicializuje průvodce a přejde na první stránku průvodce. Spouštěcí stránka (bez PageFunction<T>uživatelského rozhraní) není nutná, protože volající stránka může volat první stránku průvodce přímo. Použití stránky spouštěče však může zjednodušit inicializaci průvodce, zejména pokud je inicializace složitá.

  • Uživatelé můžou přecházet mezi stránkami pomocí tlačítek Zpět a Vpřed (nebo hypertextových odkazů).

  • Uživatelé mohou přecházet mezi stránkami pomocí deníku.

  • Uživatelé můžou průvodce zrušit z libovolné stránky průvodce stisknutím tlačítka Storno.

  • Uživatelé můžou průvodce přijmout na poslední stránce průvodce stisknutím tlačítka Dokončit.

  • Pokud je průvodce zrušený, vrátí průvodce odpovídající výsledek a nevrací žádná data.

  • Pokud uživatel přijme průvodce, vrátí průvodce odpovídající výsledek a vrátí data, která shromáždil.

  • Po dokončení (přijetí nebo zrušení) se stránky, které průvodce skládá, odebrány z deníku. Tím se každá instance průvodce izoluje, čímž se zabrání potenciálním anomáliím dat nebo stavu.

Dynamická navigace nad pevnou hierarchickou topologií

V některých aplikacích umožňují stránky navigaci na dvě nebo více dalších stránek, jak je znázorněno na následujícím obrázku:

Diagram that shows a page that can navigate to multiple pages.

Tato struktura se označuje jako pevná hierarchická topologie a pořadí, ve kterém se hierarchie prochází, se často určuje za běhu aplikací nebo uživatelem. V době běhu každá stránka v hierarchii, která umožňuje navigaci na dvě nebo více dalších stránek, shromažďuje data potřebná k určení, na kterou stránku se má přejít. Následující obrázek znázorňuje jednu z několika možných navigačních sekvencí na základě předchozího obrázku:

Diagram that shows a possible navigation sequence.

I když se pořadí, ve kterém se stránky v pevné hierarchické struktuře procházejí, určuje v době běhu, uživatelské prostředí je stejné jako uživatelské prostředí pro pevnou lineární topologii:

  • Přechod z volající stránky na stránku spouštěče, která inicializuje průvodce a přejde na první stránku průvodce. Spouštěcí stránka (bez PageFunction<T>uživatelského rozhraní) není nutná, protože volající stránka může volat první stránku průvodce přímo. Použití stránky spouštěče však může zjednodušit inicializaci průvodce, zejména pokud je inicializace složitá.

  • Uživatelé můžou přecházet mezi stránkami pomocí tlačítek Zpět a Vpřed (nebo hypertextových odkazů).

  • Uživatelé mohou přecházet mezi stránkami pomocí deníku.

  • Uživatelé můžou změnit navigační sekvenci, pokud přejdou do deníku.

  • Uživatelé můžou průvodce zrušit z libovolné stránky průvodce stisknutím tlačítka Storno.

  • Uživatelé můžou průvodce přijmout na poslední stránce průvodce stisknutím tlačítka Dokončit.

  • Pokud je průvodce zrušený, vrátí průvodce odpovídající výsledek a nevrací žádná data.

  • Pokud uživatel přijme průvodce, vrátí průvodce odpovídající výsledek a vrátí data, která shromáždil.

  • Po dokončení (přijetí nebo zrušení) se stránky, které průvodce skládá, odebrány z deníku. Tím se každá instance průvodce izoluje, čímž se zabrání potenciálním anomáliím dat nebo stavu.

V některých aplikacích lze pořadí, ve kterém se navigují dvě nebo více stránek, určit pouze za běhu, ať už uživatel, aplikace nebo externí data. Následující obrázek znázorňuje sadu stránek s nedeterminovanou navigační sekvencí:

A set of pages with an undetermined navigation sequence.

Následující obrázek znázorňuje navigační sekvenci, kterou uživatel vybral za běhu:

Diagram that shows a navigation sequence chosen at run time.

Navigační sekvence se označuje jako dynamicky generovaná topologie. Pro uživatele, stejně jako u ostatních navigačních topologií, je uživatelské prostředí stejné jako u předchozích topologií:

  • Přechod z volající stránky na stránku spouštěče, která inicializuje průvodce a přejde na první stránku průvodce. Spouštěcí stránka (bez PageFunction<T>uživatelského rozhraní) není nutná, protože volající stránka může volat první stránku průvodce přímo. Použití stránky spouštěče však může zjednodušit inicializaci průvodce, zejména pokud je inicializace složitá.

  • Uživatelé můžou přecházet mezi stránkami pomocí tlačítek Zpět a Vpřed (nebo hypertextových odkazů).

  • Uživatelé mohou přecházet mezi stránkami pomocí deníku.

  • Uživatelé můžou průvodce zrušit z libovolné stránky průvodce stisknutím tlačítka Storno.

  • Uživatelé můžou průvodce přijmout na poslední stránce průvodce stisknutím tlačítka Dokončit.

  • Pokud je průvodce zrušený, vrátí průvodce odpovídající výsledek a nevrací žádná data.

  • Pokud uživatel přijme průvodce, vrátí průvodce odpovídající výsledek a vrátí data, která shromáždil.

  • Po dokončení (přijetí nebo zrušení) se stránky, které průvodce skládá, odebrány z deníku. Tím se každá instance průvodce izoluje, čímž se zabrání potenciálním anomáliím dat nebo stavu.

Viz také