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 在请求新导航时,但在请求源内容之前引发,包括以下情况下:

  • 调用 Navigate

  • GoBackGoForward 被调用(或从导航 UI 中选择一个条目)。

  • 内容片段将导航到。

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

WebRequest导航的对象是从参数创建和可用的NavigatingCancelEventArgs;因为此时尚未发出实际请求,因此可以根据需要重新配置WebRequest对象。

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

注释

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

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

注释

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

适用于

另请参阅