Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом обзоре приведены общие сведения о топологиях навигации в WPF. Далее рассматриваются три распространенных топологии навигации с примерами.
Замечание
Перед чтением этого раздела необходимо ознакомиться с понятием структурированной навигации в WPF с помощью функций страниц. Дополнительные сведения об обоих из этих разделов см. в разделе "Обзор структурированной навигации".
Этот раздел состоит из следующих подразделов.
Топологии навигации
В WPF навигация обычно состоит из страниц () с гиперссылками (PageHyperlink), которые перемещаются на другие страницы при щелчке. Страницы, к которым осуществляется переход, определяются по универсальным идентификаторам ресурсов (URI) (см. URI пакетов в WPF). Рассмотрим следующий простой пример, показывающий страницы, гиперссылки и универсальные идентификаторы ресурсов (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>
Эти страницы расположены в топологии навигации , структура которой определяется способом перехода между страницами. Эта конкретная топология навигации подходит в простых сценариях, хотя навигация может требовать более сложных топологий, некоторые из которых можно определить только при запуске приложения.
В этом разделе рассматриваются три распространенных топологии навигации: фиксированные линейные, фиксированные иерархические и динамически созданные. Каждая топология навигации демонстрируется с примером, который имеет пользовательский интерфейс, например тот, который показан на следующем рисунке:
Структурированные топологии навигации
Существует два широких типа топологий навигации:
Исправлена топология: определена во время компиляции и не изменяется во время выполнения. Фиксированные топологии полезны для навигации по фиксированной последовательности страниц в линейном или иерархическом порядке.
Динамическая топология: определяется во время выполнения на основе входных данных, собранных пользователем, приложением или системой. Динамические топологии полезны, если страницы можно перемещать в разных последовательностях.
Хотя можно создать топологии навигации с помощью страниц, примеры используют функции страниц, так как они предоставляют дополнительную поддержку, которая упрощает передачу и возврат данных через страницы топологии.
Навигация по фиксированной линейной топологии
Фиксированная линейная топология аналогична структуре мастера с одной или несколькими страницами мастера, которые перемещаются в фиксированной последовательности. На следующем рисунке показана высокоуровневая структура и поток мастера с фиксированной линейной топологией:
Типичные характеристики навигации по фиксированной линейной топологии включают в себя следующее:
Переход с вызывающей страницы на страницу запуска, которая инициализирует мастер и ведет на первую страницу мастера. Страница запуска (без PageFunction<T>пользовательского интерфейса) не требуется, так как вызывающая страница может напрямую вызывать первую страницу мастера. Однако использование стартовой страницы может упростить инициализацию мастера, особенно если она сложная.
Пользователи могут перемещаться между страницами с помощью кнопок Назад и Вперёд (или гиперссылок).
Пользователи могут перемещаться между страницами с помощью журнала.
Пользователи могут отменить мастер настройки на любой странице мастера, нажав кнопку "Отмена".
Пользователи могут принять мастер на последней странице мастера, нажав кнопку "Готово".
Если мастер отменен, мастер возвращает соответствующий результат и не возвращает данные.
Если пользователь принимает мастер настройки, мастер возвращает соответствующий результат и собранные данные.
После завершения работы мастера (принятия или отмены), страницы, входящие в состав мастера, удаляются из журнала. Это позволяет изолировать каждый экземпляр мастера, избегая тем самым возможных аномалий данных или состояния.
Динамическая навигация по фиксированной иерархической топологии
В некоторых приложениях страницы позволяют переходить к двум или более другим страницам, как показано на следующем рисунке:
Эта структура называется фиксированной иерархической топологией, а последовательность, в которой проходит иерархия, часто определяется во время выполнения приложением или пользователем. Во время выполнения каждая страница в иерархии, которая позволяет переходить к двум или нескольким другим страницам, собирает данные, необходимые для определения страницы для перехода. На следующем рисунке показана одна из нескольких возможных последовательностей навигации на основе предыдущего рисунка:
Несмотря на то, что последовательность навигации страниц в фиксированной иерархической структуре определяется во время выполнения, взаимодействие с пользователем совпадает с пользовательским интерфейсом для фиксированной линейной топологии:
Переход с вызывающей страницы на страницу запуска, которая инициализирует мастер и ведет на первую страницу мастера. Страница запуска (без PageFunction<T>пользовательского интерфейса) не требуется, так как вызывающая страница может напрямую вызывать первую страницу мастера. Однако использование стартовой страницы может упростить инициализацию мастера, особенно если она сложная.
Пользователи могут перемещаться между страницами с помощью кнопок Назад и Вперёд (или гиперссылок).
Пользователи могут перемещаться между страницами с помощью журнала.
Пользователи могут изменить последовательность навигации, если они переходят обратно через журнал.
Пользователи могут отменить мастер настройки на любой странице мастера, нажав кнопку "Отмена".
Пользователи могут принять мастер на последней странице мастера, нажав кнопку "Готово".
Если мастер отменен, мастер возвращает соответствующий результат и не возвращает данные.
Если пользователь принимает мастер настройки, мастер возвращает соответствующий результат и собранные данные.
После завершения работы мастера (принятия или отмены), страницы, входящие в состав мастера, удаляются из журнала. Это позволяет изолировать каждый экземпляр мастера, избегая тем самым возможных аномалий данных или состояния.
Навигация по динамической топологии
В некоторых приложениях последовательность навигации между двумя или более страницами может определяться только во время выполнения, будь то пользователь, приложение или внешние данные. На следующем рисунке показан набор страниц с неопределенной последовательностью навигации:
На следующем рисунке показана последовательность навигации, выбранная пользователем во время выполнения:
Последовательность навигации называется динамической топологией. Для пользователя, как и в других топологиях навигации, взаимодействие с пользователем совпадает с предыдущими топологиями:
Переход с вызывающей страницы на страницу запуска, которая инициализирует мастер и ведет на первую страницу мастера. Страница запуска (без PageFunction<T>пользовательского интерфейса) не требуется, так как вызывающая страница может напрямую вызывать первую страницу мастера. Однако использование стартовой страницы может упростить инициализацию мастера, особенно если она сложная.
Пользователи могут перемещаться между страницами с помощью кнопок Назад и Вперёд (или гиперссылок).
Пользователи могут перемещаться между страницами с помощью журнала.
Пользователи могут отменить мастер настройки на любой странице мастера, нажав кнопку "Отмена".
Пользователи могут принять мастер на последней странице мастера, нажав кнопку "Готово".
Если мастер отменен, мастер возвращает соответствующий результат и не возвращает данные.
Если пользователь принимает мастер настройки, мастер возвращает соответствующий результат и собранные данные.
После завершения работы мастера (принятия или отмены), страницы, входящие в состав мастера, удаляются из журнала. Это позволяет изолировать каждый экземпляр мастера, избегая тем самым возможных аномалий данных или состояния.
См. также
- Page
- PageFunction<T>
- NavigationService
- Обзор структурированной навигации
.NET Desktop feedback