Navigating Event
Collapse the table of content
Expand the table of content

NavigationService.Navigating Event

 

Occurs when a new navigation is requested.

Namespace:   System.Windows.Navigation
Assembly:  PresentationFramework (in PresentationFramework.dll)

public event NavigatingCancelEventHandler Navigating

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.

System_CAPS_noteNote

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.

System_CAPS_noteNote

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

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.

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;
    }
}

.NET Framework
Available since 3.0
Silverlight
Available since 3.0
Windows Phone Silverlight
Available since 7.0
Return to top
Show:
© 2016 Microsoft