NavigationService.Navigating 事件
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
请求新导航时发生。
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 以检测是否已发出刷新静态内容的请求,如果是,则取消请求。
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,将状态添加到该内容的日记条目中。
注意
当引发 Navigating时NavigationService,它还会Application.Navigating引发 对象上的 Application 事件。