ArcGISRuntime.Samples.Desktop.MainWindow.TakeThumbnail C# (CSharp) Method

TakeThumbnail() private method

private TakeThumbnail ( ) : void
return void
        private async void TakeThumbnail()
        {
            if (SampleManager.Current.SelectedSample == null)
            {
                MessageBox.Show("Please select Live Sample to before creating a thumbnail.");
                return;
            }

            if (!_isTakingThumbnail)
            {
                _previousHeight = (int)SampleContainer.ActualHeight;
                _previousWidth = (int)SampleContainer.ActualWidth;

                SampleContainer.Width = _previousHeight * 1.25;
                _isTakingThumbnail = true;
                return;
            }

            var rtb = new RenderTargetBitmap((int)SampleContainer.ActualWidth,
                (int)SampleContainer.ActualHeight, 96, 96, PixelFormats.Default);
            rtb.Render(SampleContainer.Content as UIElement);

            // Encoding the RenderBitmapTarget as a JPG file.
            JpegBitmapEncoder jpg = new JpegBitmapEncoder() { QualityLevel = 90 };
            jpg.Frames.Add(BitmapFrame.Create(rtb));

            var file = new FileInfo(Path.Combine(
                SampleManager.Current.SelectedSample.GetSampleFolderInRelativeSolution(),
                SampleManager.Current.SelectedSample.Image));
            if (file.Exists)
            {
                await Task.Delay(1000);
                file.Delete();
                using (Stream stm = File.Create(file.FullName))
                    jpg.Save(stm);
            }
            else
            {
                using (Stream stm = File.Create(file.FullName))
                    jpg.Save(stm);
            }

            SampleContainer.Width = _previousWidth;
            SampleContainer.Height = _previousHeight;
            SampleContainer.HorizontalAlignment = HorizontalAlignment.Left;
            SampleContainer.VerticalAlignment = VerticalAlignment.Top;
            _isTakingThumbnail = false;
        }