// The event that will fire whenever the progress of the WebClient is changed
 private static void ProgressChanged(object sender, DownloadProgressChangedEventArgs e)
 {
     if (OnProgressChanged != null)
     {
         var args = new DownloadingProgressEventArgs();
         args.CurrentSpeed      = string.Format("{0} kb/s", (e.BytesReceived / 1024d / sw.Elapsed.TotalSeconds).ToString("0.00"));
         args.CurrentPercentage = e.ProgressPercentage;
         args.TotalDownloaded   = (e.BytesReceived / 1024d).ToString("0.00");
         args.TotalSize         = (e.TotalBytesToReceive / 1024d).ToString("0.00");
         args.Remaining         = ((e.TotalBytesToReceive - e.BytesReceived) / 1024d).ToString("0.00");
         OnProgressChanged(null, args);
     }
 }
 // The event that will fire whenever the progress of the WebClient is changed
 private static void ProgressChanged(object sender, DownloadProgressChangedEventArgs e)
 {
     if (OnProgressChanged != null)
     {
         var args = new DownloadingProgressEventArgs();
         args.CurrentSpeed = string.Format("{0} kb/s", (e.BytesReceived / 1024d / sw.Elapsed.TotalSeconds).ToString("0.00"));
         args.CurrentPercentage = e.ProgressPercentage;
         args.TotalDownloaded = (e.BytesReceived / 1024d).ToString("0.00");
         args.TotalSize = (e.TotalBytesToReceive / 1024d).ToString("0.00");
         args.Remaining = ((e.TotalBytesToReceive - e.BytesReceived) / 1024d).ToString("0.00");
         OnProgressChanged(null, args);
     }
 }