Поделиться через


NavigationService Класс

Определение

Содержит методы, свойства и события для поддержки переходов.

public ref class NavigationService sealed
public sealed class NavigationService
type NavigationService = class
Public NotInheritable Class NavigationService
Наследование
NavigationService

Комментарии

NavigationService инкапсулирует возможность скачивания содержимого в контексте навигации в стиле браузера.

Содержимое может быть любым типом платформа .NET Framework объектных и HTML-файлов. Однако в целом страницы являются предпочтительным способом упаковки содержимого для навигации (см. ).Page

К содержимому можно перейти, предоставив экземпляр объекта и вызвав перегрузку Navigate метода, который принимает объект :

Кроме того, к содержимому можно перейти, передав относительный или абсолютный URI в одну из Navigate перегрузок метода, который принимает URI:

При переходе к содержимому по URI возвращает объект, NavigationService содержащий содержимое.

Время существования навигации можно отслеживать с помощью следующих событий:

Не все события возникают при каждом переходе; набор создаваемых событий определяется типом навигации (содержимое или фрагмент содержимого) и способом завершения навигации (отменено, остановлено или завершилось сбоем).

На следующем рисунке показана последовательность, в которой возникают эти события.

Блок-схема навигации

Во время или после навигации предоставляет сведения о содержимом, к которому выполняется переход, включая URI содержимого, NavigationService к которому осуществляется переход (Source), URI текущего содержимого (CurrentSource) и объект, содержащий содержимое, к которому был выполнен переход (Content).

При переходе к содержимому NavigationService она записывается как запись в журнале навигации. Запись добавляется в журнал навигации назад при возникновении новой навигации путем вызова Navigate метода или при переходе к записи в журнале навигации вперед путем вызова GoForward. Запись добавляется в журнал навигации путем перехода к записи в обратном журнале навигации путем вызова GoBack. CanGoBack и CanGoForward сообщают о наличии записей в журнале навигации назад и вперед соответственно. Кроме того, последнюю запись в журнале навигации можно удалить, вызвав .RemoveBackEntry

По умолчанию NavigationService не сохраняет экземпляр объекта содержимого в журнале навигации. Вместо этого NavigationService создает новый экземпляр объекта содержимого при каждом переходе к нему с помощью журнала навигации. Такое поведение позволяет избежать чрезмерного использования памяти при переходе к большому количеству и большим фрагментам содержимого. Следовательно, состояние содержимого не запоминается при переходе к другой. Однако WPF предоставляет несколько методов, с помощью которых можно сохранить часть состояния для части содержимого в журнале навигации.

С помощью AddBackEntryможно также запомнить несколько наборов состояний для одного экземпляра страницы.

NavigationService является классом sealed и поэтому не может быть создан экземпляр; вместо этого NavigationService используется навигаторами для включения навигации. В WPF есть два навигатора: NavigationWindow и Frame.

Визуально XBAP используют интернет-Обозреватель в качестве навигатора, чтобы обеспечить интегрированное взаимодействие с пользователем. Однако физически XBAP фактически используются NavigationWindow в качестве навигатора; MainWindow свойство XBAP, работающего в Интернет-Обозреватель, возвращает ссылку NavigationWindowна , а журнал навигации, управляемый , интегрируется с журналом NavigationWindow навигации, управляемым интернет-Обозреватель следующими способами:

  • При переходе к содержимому путем вызова Navigate, GoBackи GoForward из XBAP соответствующие записи журнала навигации также добавляются в журнал навигации в Интернете Обозреватель.
  • При выборе записей в пользовательском интерфейсе навигации в Интернете Обозреватель интернет-Обозреватель приводит NavigationService к переходу обратно или обратно к содержимому, связанному с этими записями.

Примечание

Может Frame предоставлять собственный журнал навигации или использовать журнал навигации навигатора, в котором он размещен. Если Frame предоставляет собственный журнал навигации, он может отображать собственный пользовательский интерфейс навигации для навигации по записям в журнале навигации. Эти записи не добавляются в журнал навигации навигатора узла (NavigationWindow, Frame, браузера) и, следовательно, не могут быть доступны из пользовательского интерфейса навигации каждого из них (см JournalOwnership. ).

Дополнительные сведения о поддержке XBAP см. в статье Часто задаваемые вопросы о приложениях WPF, размещенных в браузере (XBAP).

Свойства

CanGoBack

Возвращает значение, указывающее, имеются ли записи в журнале переходов назад.

CanGoForward

Возвращает значение, указывающее, имеются ли записи в журнале переходов вперед.

Content

Возвращает или задает указатель на объект с текущим содержимым.

CurrentSource

Возвращает универсальный код ресурса (URI) содержимого, к которому был осуществлен последний переход.

Source

Возвращает или задает URI текущего содержимого или URI нового содержимого, к которому осуществляется переход.

Методы

AddBackEntry(CustomContentState)

Добавляет запись в журнал переходов назад, содержащий объект CustomContentState.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetNavigationService(DependencyObject)

Возвращает указатель на NavigationService для навигатора, содержимое которого находится в заданном DependencyObject.

GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
GoBack()

Выполняет переход к последней записи журнала переходов назад, если он содержит записи.

GoForward()

Выполняет переход к последней записи журнала переходов назад, если он содержит записи.

MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
Navigate(Object)

Выполняет асинхронный переход к содержимому, которое находится в объекте.

Navigate(Object, Object)

Выполняет асинхронный переход к содержимому, которое находится в объекте, и передает объект с данными, предназначенными для использования в процессе перехода.

Navigate(Uri)

Выполняет асинхронный переход к содержимому, идентифицируемому URI.

Navigate(Uri, Object)

Выполняет асинхронный переход к содержимому источника с указанным URI и передает объект с данными, предназначенными для использования в процессе перехода.

Navigate(Uri, Object, Boolean)

Выполняет асинхронный переход к содержимому источника с указанным URI, передает объект, содержащий состояние перехода для использования в процессе перехода, и выводит содержимое в песочнице.

Refresh()

Заново загружает текущее содержимое.

RemoveBackEntry()

Удаляет последнюю запись из журнала переходов назад.

StopLoading()

Останавливает дальнейшую загрузку содержимого для текущего запроса перехода.

ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

События

FragmentNavigation

Происходит, когда начинается переход к фрагменту содержимого, который происходит немедленно, если нужный фрагмент находится в текущем содержимом, или после загрузки исходного содержимого XAML, если нужный фрагмент находится в другом содержимом.

LoadCompleted

Генерируется, когда содержимое, к которому осуществлен переход, загружено, проанализировано и начинается его отрисовка.

Navigated

Возникает, когда содержимое, к которому осуществляется переход, найдено и доступно через свойство Content, хотя его загрузка, возможно, еще не завершена.

Navigating

Появляется, когда запрошен новый переход.

NavigationFailed

Генерируется, когда происходит ошибка при переходе к запрошенному содержимому.

NavigationProgress

Происходит периодически во время загрузки, тем самым предоставляя информацию о ходе процесса навигации.

NavigationStopped

Генерируется, когда вызван метод StopLoading() или во время выполнения текущего перехода запрошен новый переход.

Применяется к