Přehled topologií navigace
Tento přehled obsahuje úvod do topologií navigace 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 naleznete v tématu Přehled strukturované navigace.
Toto téma obsahuje následující části:
Topologie navigace
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 sady pack ve WPF). Zvažte následující jednoduchý příklad, který zobrazuje stránky, hypertextové odkazy a jednotné identifikátory zdrojů (URI):
<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 do navigační topologie, 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 je ukázána na příkladu s uživatelským rozhraním, jako je to zobrazené na následujícím obrázku.
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.
Navigace nad pevnou lineární topologií
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 celkovou strukturu a průběh průvodce s pevnou lineární topologií.
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 uživatelského rozhraní PageFunction<T>) 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í) jsou stránky, které průvodce obsahuje, odebrány z deníku. Každá instance průvodce se tím udržuje izolovaná, čímž se zabrání potenciálním anomáliím v datech 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:
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:
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 uživatelského rozhraní PageFunction<T>) 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 se vrátí zpět prostřednictvím 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é tvoří průvodce, odeberou 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.
Navigace nad dynamicky vygenerovanou topologií
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í:
Následující obrázek znázorňuje navigační sekvenci, kterou uživatel vybral za běhu:
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 uživatelského rozhraní PageFunction<T>) 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í průvodce (přijetí nebo zrušení) jsou stránky, které průvodce obsahuje, 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é
.NET Desktop feedback