This documentation is archived and is not being maintained.

NavigationService::NavigationProgress Event

Occurs periodically during a download to provide navigation progress information.

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

 event NavigationProgressEventHandler^ NavigationProgress {
	void add (NavigationProgressEventHandler^ value);
	void remove (NavigationProgressEventHandler^ value);
You cannot use this event in XAML.

NavigationProgress is passed a NavigationProgressEventArgs which exposes the following progress information:

  • Number of bytes downloaded so far (BytesRead).

  • Number of total bytes to download (MaxBytes).

NavigationProgress is raised once for every 1024 bytes of content downloaded, and once more if the number of remaining bytes is ever less than 1024 bytes. For this reason, handling NavigationProgress provides a useful way to track and display the progress of a current download.

NavigationProgress won't be raised in some cases, such as when the same piece of content is navigated to, or when a content fragment is navigated to on content that is currently loaded (that is, the value of the Content property).

When navigating to a compiled XAML resource, the final NavigationProgress event may not be raised. This means that at the end of the download, the last reported BytesRead value may not equal the MaxBytes value. Handle the LoadCompleted event to be notified when the navigation has finished.


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

The following example shows how to handle NavigationProgress.

void NavigationService_NavigationProgress(object sender, NavigationProgressEventArgs e)
    string msg = string.Format("{0} of {1} bytes retrieved.", e.BytesRead, e.MaxBytes);
    this.progressStatusBarItem.Content = msg;

Windows 7, Windows Vista, Windows XP SP2, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

.NET Framework

Supported in: 3.5, 3.0