예제 #1
0
        /// <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);
        }