NavigationService.Navigating 事件

定义

请求新导航时发生。

public:
 event System::Windows::Navigation::NavigatingCancelEventHandler ^ Navigating;
public event System.Windows.Navigation.NavigatingCancelEventHandler Navigating;
member this.Navigating : System.Windows.Navigation.NavigatingCancelEventHandler 
Public Custom Event Navigating As NavigatingCancelEventHandler 

事件类型

示例

以下示例演示如何处理 Navigating 以检测是否已发出刷新静态内容的请求,如果是,则取消请求。

Navigating.

void NavigationService_Navigating(object sender, NavigatingCancelEventArgs e)
{
    // Don't allow refreshing of a static page
    if ((e.NavigationMode == NavigationMode.Refresh) &&
        (e.Uri.OriginalString == "StaticPage.xaml"))
    {
        e.Cancel = true;
    }
}
Private Sub NavigationService_Navigating(ByVal sender As Object, ByVal e As NavigatingCancelEventArgs)
    ' Don't allow refreshing of a static page
    If (e.NavigationMode = NavigationMode.Refresh) AndAlso (e.Uri.OriginalString = "StaticPage.xaml") Then
        e.Cancel = True
    End If
End Sub

注解

Navigating 在请求新导航时,但在请求源内容之前引发,包括以下情况下:

如果需要在导航开始之前发现有关导航请求的相关信息,可以进行处理 Navigating 。 此信息可从 NavigatingCancelEventArgs 传递给事件处理程序的 对象获取 Navigating

WebRequest将创建导航对象并从 参数中获取NavigatingCancelEventArgs;由于此时尚未发出实际请求,因此可以根据需要重新配置WebRequest对象。

如果需要,还可以 NavigatingCancelEventArgs 通过将 设置为 Cancel true 来处理取消导航。 如果取消导航,则不会引发其他导航事件。

注意

如果应用程序托管在浏览器中,则无法通过取消 Navigating 事件来阻止用户离开应用程序。

导航器 (NavigationWindow导航到第一段内容后, Frame) ,导航离开的每一段内容都会添加到导航历史记录中。 如果需要保存有关要从其导航的内容的状态信息,可以通过使用 CustomContentState 对象进行设置ContentStateToSave,将状态添加到该内容的日记条目中。

注意

当引发 NavigatingNavigationService,它还会Application.Navigating引发 对象上的 Application 事件。

适用于

另请参阅