Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
To omówienie zawiera wprowadzenie do topologii nawigacji w WPF. Trzy typowe topologie nawigacji, z przykładami, są następnie omawiane.
Uwaga / Notatka
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 ustrukturyzowanej.
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, na które się przechodzi, są identyfikowane przez jednolite identyfikatory zasobów (URI) (zobacz URI pakietów w WPF w). 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órych struktura jest określana przez sposób nawigacji 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 nawigacyjne: liniowa stała , hierarchiczna stała oraz dynamicznie generowana . 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:
Stała topologia: zdefiniowana 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.
Dynamicznej Topologii: zdefiniowane 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 interfejsu użytkownika PageFunction<T>) nie jest wymagana, ponieważ strona wywołująca może bezpośrednio wywołać pierwszą stronę kreatora. Jednak użycie strony startowej może uprościć inicjalizację kreatora, szczególnie jeśli inicjalizacja jest złożona.
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 pozostaje odizolowane, co pozwala uniknąć potencjalnych anomalii danych lub ich 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, w której nawigowane są strony w stałej strukturze hierarchicznej, jest określana w czasie wykonywania, doświadczenie użytkownika jest takie samo jak w przypadku 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 interfejsu użytkownika PageFunction<T>) nie jest wymagana, ponieważ strona wywołująca może bezpośrednio wywołać pierwszą stronę kreatora. Jednak użycie strony startowej może uprościć inicjalizację kreatora, szczególnie jeśli inicjalizacja jest złożona.
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 pozostaje odizolowane, co pozwala uniknąć potencjalnych anomalii danych lub ich 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 interfejsu użytkownika PageFunction<T>) nie jest wymagana, ponieważ strona wywołująca może bezpośrednio wywołać pierwszą stronę kreatora. Jednak użycie strony startowej może uprościć inicjalizację kreatora, szczególnie jeśli inicjalizacja jest złożona.
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 pozostaje odizolowane, co pozwala uniknąć potencjalnych anomalii danych lub ich stanu.
Zobacz także
- Page
- PageFunction<T>
- NavigationService
- Omówienie nawigacji ustrukturyzowanej
.NET Desktop feedback