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


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 возвращает объект, содержащий содержимое.

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

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

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

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

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

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

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

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

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

  • При переходе к содержимому путем вызова Navigateи GoBackGoForward из XBAP соответствующие записи журнала навигации также добавляются в журнал навигации Internet Explorer.
  • При выборе записей в пользовательском интерфейсе навигации Internet Explorer Internet Explorer вызывает 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, Object)

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

Navigate(Object)

Асинхронно переход к содержимому, содержаемого объектом.

Navigate(Uri, Object, Boolean)

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

Navigate(Uri, Object)

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

Navigate(Uri)

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

Refresh()

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

RemoveBackEntry()

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

StopLoading()

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

ToString()

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

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

События

Имя Описание
FragmentNavigation

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

LoadCompleted

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

Navigated

Происходит при обнаружении содержимого, к которому выполняется переход, и доступно из Content свойства, хотя оно может не завершить загрузку.

Navigating

Происходит при запросе новой навигации.

NavigationFailed

Возникает при возникновении ошибки при переходе к запрошенном содержимому.

NavigationProgress

Периодически возникает во время скачивания для предоставления сведений о ходе навигации.

NavigationStopped

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

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