NavigationService.NavigationProgress Event


Occurs periodically during a download to provide navigation progress information.

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

public event NavigationProgressEventHandler NavigationProgress

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;

.NET Framework
Available since 3.0
Return to top