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;
}