NavigationService.Navigating Event


Occurs when a new navigation is requested.

 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 

Event Type



The following example shows how to handle Navigating to detect whether a request to refresh static content has been made and, if so, to cancel the request.


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 is raised when a new navigation is requested, but before the source content is requested, including when:

  • Navigate is called.

  • GoBack or GoForward is called (or an entry is selected from a navigation UI).

  • A content fragment is navigated to.

You handle Navigating if you need to discover pertinent information regarding the navigation request before navigation starts. This information is available from the NavigatingCancelEventArgs object that is passed to the Navigating event handler.

A WebRequest object for the navigation is created and available from the NavigatingCancelEventArgs parameter; because the actual request hasn't been made at this point, you can reconfigure the WebRequest object, if necessary.

You also handle NavigatingCancelEventArgs to cancel navigation, if required, by setting Cancel to true. If you cancel navigation, no other navigation events are raised.


If your application is hosted in the browser, you cannot prevent the user from navigating away from your application by canceling the Navigating event.

After the first piece of content is navigated to by a navigator (NavigationWindow, Frame), each piece of content that is navigated away from is added to navigation history. If you need to save state information about the content you are navigating away from, you can add the state to the journal entry for that content by setting ContentStateToSave with a CustomContentState object.


When NavigationService raises Navigating, it also raises Application.Navigating event on the Application object.

Applies to

See also