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:
- NavigationService.Navigate(Uri)
- NavigationService.Navigate(Uri, Object)
- NavigationService.Navigate(Uri, Object, Boolean)
При переходе к содержимому по URI возвращает объект, NavigationService содержащий содержимое.
Время существования навигации можно отслеживать с помощью следующих событий:
- Navigating
- Navigated
- NavigationProgress
- NavigationFailed
- NavigationStopped
- LoadCompleted
- FragmentNavigation
Не все события возникают при каждом переходе; набор создаваемых событий определяется типом навигации (содержимое или фрагмент содержимого) и способом завершения навигации (отменено, остановлено или завершилось сбоем).
На следующем рисунке показана последовательность, в которой возникают эти события.
Во время или после навигации предоставляет сведения о содержимом, к которому выполняется переход, включая 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() или во время выполнения текущего перехода запрошен новый переход. |