Przegląd Topologia nawigacji
To omówienie zawiera wprowadzenie do topologii nawigacji w WPF. Trzy typowe topologie nawigacji, z przykładami, są następnie omawiane.
Uwaga
Przed przeczytaniem tego tematu należy zapoznać się z koncepcją nawigacji strukturalnej w WPF przy użyciu funkcji stron. Aby uzyskać więcej informacji na temat obu tych tematów, zobacz Omówienie nawigacji strukturalnej.
Ten temat zawiera następujące sekcje:
Topologie nawigacji
W WPF nawigacja zazwyczaj składa się ze stron (Page) z hiperlinkami (Hyperlink), które przechodzą do innych stron po kliknięciu. Strony, do których przechodzi się, są identyfikowane przez identyfikatory URI (URI) (zobacz Identyfikatory URI pakietów w WPF). Rozważmy następujący prosty przykład pokazujący strony, hiperlinki i jednolite identyfikatory zasobów (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>
Te strony są rozmieszczane w topologii nawigacji, której struktura jest określana przez sposób przechodzenia między stronami. Ta konkretna topologia nawigacji jest odpowiednia w prostych scenariuszach, chociaż nawigacja może wymagać bardziej złożonych topologii, z których niektóre można zdefiniować tylko w przypadku uruchamiania aplikacji.
W tym temacie opisano trzy typowe topologie nawigacji: stały liniowy, stały hierarchiczny i dynamicznie generowany. Każda topologia nawigacji jest pokazana przy użyciu przykładu, który ma interfejs użytkownika podobny do przedstawionego na poniższej ilustracji:
Topologie nawigacji ustrukturyzowanej
Istnieją dwa szerokie typy topologii nawigacji:
Naprawiono topologię: zdefiniowano w czasie kompilacji i nie zmienia się w czasie wykonywania. Stałe topologie są przydatne do nawigacji przez stałą sekwencję stron w kolejności liniowej lub hierarchicznej.
Topologia dynamiczna: zdefiniowana w czasie wykonywania na podstawie danych wejściowych zebranych od użytkownika, aplikacji lub systemu. Dynamiczne topologie są przydatne, gdy można nawigować po stronach w różnych sekwencjach.
Chociaż istnieje możliwość tworzenia topologii nawigacji przy użyciu stron, przykłady używają funkcji strony, ponieważ zapewniają dodatkową obsługę, która upraszcza obsługę przekazywania i zwracania danych za pośrednictwem stron topologii.
Nawigacja po stałej topologii liniowej
Stała topologia liniowa jest analogiczna do struktury kreatora, który ma co najmniej jedną stronę kreatora, która jest nawigowana w stałej sekwencji. Na poniższej ilustracji przedstawiono strukturę wysokiego poziomu i przepływ kreatora ze stałą topologią liniową:
Typowe zachowania nawigowania po stałej topologii liniowej obejmują następujące elementy:
Przejście ze strony wywołującej do strony uruchamiania, która inicjuje kreatora i przechodzi do pierwszej strony kreatora. Strona uruchamiania (bez PageFunction<T>interfejsu użytkownika) nie jest wymagana, ponieważ strona wywołująca może bezpośrednio wywołać pierwszą stronę kreatora. Jednak użycie strony uruchamiania może uprościć inicjowanie kreatora, szczególnie jeśli inicjowanie jest złożone.
Użytkownicy mogą nawigować między stronami przy użyciu przycisków Wstecz i Prześlij dalej (lub hiperlinków).
Użytkownicy mogą nawigować między stronami przy użyciu dziennika.
Użytkownicy mogą anulować kreatora z dowolnej strony kreatora, naciskając przycisk Anuluj.
Użytkownicy mogą zaakceptować kreatora na ostatniej stronie kreatora, naciskając przycisk Zakończ.
Jeśli kreator zostanie anulowany, kreator zwróci odpowiedni wynik i nie zwraca żadnych danych.
Jeśli użytkownik zaakceptuje kreatora, kreator zwróci odpowiedni wynik i zwróci zebrane dane.
Gdy kreator zostanie ukończony (zaakceptowany lub anulowany), strony, z których składa się kreator, zostaną usunięte z dziennika. Dzięki temu każde wystąpienie kreatora jest odizolowane, co pozwala uniknąć potencjalnych anomalii danych lub stanu.
Nawigacja dynamiczna przez stałą topologię hierarchiczną
W niektórych aplikacjach strony umożliwiają nawigację do co najmniej dwóch innych stron, jak pokazano na poniższej ilustracji:
Ta struktura jest znana jako stała topologia hierarchiczna, a sekwencja przechodzenia hierarchii jest często określana w czasie wykonywania przez aplikację lub użytkownika. W czasie wykonywania każda strona w hierarchii, która umożliwia nawigację do co najmniej dwóch innych stron, zbiera dane wymagane do określenia, do której strony należy przejść. Na poniższej ilustracji przedstawiono jedną z kilku możliwych sekwencji nawigacji na podstawie poprzedniej ilustracji:
Mimo że sekwencja stron w stałej strukturze hierarchicznej jest określana w czasie wykonywania, środowisko użytkownika jest takie samo jak środowisko użytkownika dla stałej topologii liniowej:
Przejście ze strony wywołującej do strony uruchamiania, która inicjuje kreatora i przechodzi do pierwszej strony kreatora. Strona uruchamiania (bez PageFunction<T>interfejsu użytkownika) nie jest wymagana, ponieważ strona wywołująca może bezpośrednio wywołać pierwszą stronę kreatora. Jednak użycie strony uruchamiania może uprościć inicjowanie kreatora, szczególnie jeśli inicjowanie jest złożone.
Użytkownicy mogą nawigować między stronami przy użyciu przycisków Wstecz i Prześlij dalej (lub hiperlinków).
Użytkownicy mogą nawigować między stronami przy użyciu dziennika.
Użytkownicy mogą zmieniać sekwencję nawigacji, jeśli przechodzą z powrotem przez dziennik.
Użytkownicy mogą anulować kreatora z dowolnej strony kreatora, naciskając przycisk Anuluj.
Użytkownicy mogą zaakceptować kreatora na ostatniej stronie kreatora, naciskając przycisk Zakończ.
Jeśli kreator zostanie anulowany, kreator zwróci odpowiedni wynik i nie zwraca żadnych danych.
Jeśli użytkownik zaakceptuje kreatora, kreator zwróci odpowiedni wynik i zwróci zebrane dane.
Gdy kreator zostanie ukończony (zaakceptowany lub anulowany), strony, z których składa się kreator, zostaną usunięte z dziennika. Dzięki temu każde wystąpienie kreatora jest odizolowane, co pozwala uniknąć potencjalnych anomalii danych lub stanu.
Nawigacja po dynamicznie generowanej topologii
W niektórych aplikacjach sekwencja, w której są nawigowane co najmniej dwie strony, można określić tylko w czasie wykonywania, zarówno przez użytkownika, aplikację, jak i dane zewnętrzne. Na poniższej ilustracji przedstawiono zestaw stron z nieokreśloną sekwencją nawigacji:
Na następnej ilustracji przedstawiono sekwencję nawigacji wybraną przez użytkownika w czasie wykonywania:
Sekwencja nawigacji jest nazywana dynamicznie generowaną topologią. W przypadku użytkownika, podobnie jak w przypadku innych topologii nawigacji, środowisko użytkownika jest takie samo jak w przypadku poprzednich topologii:
Przejście ze strony wywołującej do strony uruchamiania, która inicjuje kreatora i przechodzi do pierwszej strony kreatora. Strona uruchamiania (bez PageFunction<T>interfejsu użytkownika) nie jest wymagana, ponieważ strona wywołująca może bezpośrednio wywołać pierwszą stronę kreatora. Jednak użycie strony uruchamiania może uprościć inicjowanie kreatora, szczególnie jeśli inicjowanie jest złożone.
Użytkownicy mogą nawigować między stronami przy użyciu przycisków Wstecz i Prześlij dalej (lub hiperlinków).
Użytkownicy mogą nawigować między stronami przy użyciu dziennika.
Użytkownicy mogą anulować kreatora z dowolnej strony kreatora, naciskając przycisk Anuluj.
Użytkownicy mogą zaakceptować kreatora na ostatniej stronie kreatora, naciskając przycisk Zakończ.
Jeśli kreator zostanie anulowany, kreator zwróci odpowiedni wynik i nie zwraca żadnych danych.
Jeśli użytkownik zaakceptuje kreatora, kreator zwróci odpowiedni wynik i zwróci zebrane dane.
Gdy kreator zostanie ukończony (zaakceptowany lub anulowany), strony, z których składa się kreator, zostaną usunięte z dziennika. Dzięki temu każde wystąpienie kreatora jest odizolowane, co pozwala uniknąć potencjalnych anomalii danych lub stanu.
Zobacz też
.NET Desktop feedback