Page.NavigationService 属性
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
获取页的宿主用来管理导航的导航服务。
public:
property System::Windows::Navigation::NavigationService ^ NavigationService { System::Windows::Navigation::NavigationService ^ get(); };
public System.Windows.Navigation.NavigationService NavigationService { get; }
member this.NavigationService : System.Windows.Navigation.NavigationService
Public ReadOnly Property NavigationService As NavigationService
属性值
页的宿主用来管理导航的 NavigationService 对象;或者,如果宿主不支持导航,则为 null
。
示例
以下示例演示了页面如何检查导航服务是否可用,如果是,请使用该服务导航回上一页。
public partial class HomePage : Page
{
public HomePage()
{
InitializeComponent();
// Don't allow back navigation if no navigation service
if (this.NavigationService == null)
{
this.goBackButton.IsEnabled = false;
}
}
void goBackButton_Click(object sender, RoutedEventArgs e)
{
// Go to previous entry in journal back stack
if (this.NavigationService.CanGoBack)
{
this.NavigationService.GoBack();
}
}
}
Partial Public Class HomePage
Inherits Page
Public Sub New()
InitializeComponent()
' Don't allow back navigation if no navigation service
If Me.NavigationService Is Nothing Then
Me.goBackButton.IsEnabled = False
End If
End Sub
Private Sub goBackButton_Click(ByVal sender As Object, ByVal e As RoutedEventArgs)
' Go to previous entry in journal back stack
If Me.NavigationService.CanGoBack Then
Me.NavigationService.GoBack()
End If
End Sub
End Class
注解
页面可以由多种类型的主机托管,包括 Window、 NavigationWindow、 Frame和 浏览器。
页面通常需要与其主机的导航集成,以提供页内导航支持。 但是,由于页面可能不知道其主机在运行时会是什么,因此无法直接与其主机的导航成员集成来执行此操作。
相反,它可以尝试使用导航服务,该服务支持浏览器样式的导航,并由 NavigationService 类封装。 但是,不能创建自己的 NavigationService 实例。 相反,主机类型(如 NavigationWindow、 Frame或浏览器)会创建自己的 NavigationService 实例,你可以从 NavigationService 属性访问该实例。
从 NavigationService 属性返回的导航服务是由可视化树上的第一个导航器管理的类的实例 NavigationService 。 如果未找到, null
则返回 ,指示页面的主机不支持导航。
注意
类 Window 不支持导航,不提供导航服务。