NavigationService.GetNavigationService 方法
更新:2007 年 11 月
获取对导航器的 NavigationService 的引用,该导航器的内容中包含指定的 DependencyObject。
命名空间: System.Windows.Navigation
程序集: PresentationFramework(在 PresentationFramework.dll 中)
参数
- dependencyObject
-
类型:
System.Windows.DependencyObject
由导航器承载的内容中的 DependencyObject。
返回值
类型: System.Windows.Navigation.NavigationService对导航器(该导航器的内容中包含指定的 DependencyObject)的 NavigationService 的引用在某些情况下可以为 null(请参见“备注”)。
导航器具有一个可处理内容导航的 NavigationService。WPF 具有两种导航器:NavigationWindow 和 Frame。为了处理导航请求和管理导航生存期,导航器将使用 WPF 导航服务,该服务作为 NavigationService 类实现。由导航器承载的内容可以通过调用 GetNavigationService 方法获取对导航器的 NavigationService 的引用。
当 dependencyObject 符合以下条件时,GetNavigationService 将返回 null:
-
为符合以下条件的 Frame:
-
由其他导航器承载。
-
将其 JournalOwnership 属性设置为 UsesParentJournal。
-
-
不是导航器承载的内容的一部分。
WPF 提供两种快捷方式来获取对 NavigationService 的引用:
-
用于处理对 Page 的导航的 NavigationService 可以通过获取其 Page.NavigationService 属性的值从 Page 本身访问。
-
由 Frame 用于处理导航的 NavigationService 可以通过获取 NavigationService 属性的值进行访问。
下面的示例演示 UserControl 如何通过调用 GetNavigationService 检索导航服务。
void getNavigationServiceButton_Click(object sender,RoutedEventArgs e) { // Retrieve first navigation service up the content tree NavigationService svc = NavigationService.GetNavigationService(this.getNavigationServiceButton); if (svc != null) { // Use navigation service ... } }