/// <summary> /// Handles the RunWorkerCompleted event of the renderThread control. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="System.ComponentModel.RunWorkerCompletedEventArgs"/> instance containing the event data.</param> private void renderThread_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { if (e.Cancelled || e.Result == null) { return; } object[] result = (object[])e.Result; PngEncoder ei = (PngEncoder)result[0]; int width = (int)result[1]; int height = (int)result[2]; Envelope extent = (Envelope)result[3]; OnImageComplete onComplete = (OnImageComplete)result[4]; BitmapImage image = new BitmapImage(); image.SetSource(ei.GetImageStream()); onComplete(image, width, height, extent); }