화면을 통채로 캡쳐하고 싶은 경우가 있다.
Canvas 객체를 파일로 저장하는 코드는 다음과 같다.
RenderTargetBitmap renderBitmap = new RenderTargetBitmap(
(int)myCanvas.ActualWidth, (int)myCanvas.ActualHeight,
96d, 96d, PixelFormats.Default);
renderBitmap.Render(myCanvas);
using (Stream stream = new FileStream(fileName,
FileMode.Create, FileAccess.Write, FileShare.None))
{
JpegBitmapEncoder encoder = new JpegBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create(renderBitmap));
encoder.Save(stream);
}
RenderTargetBitmap 객체를 통해 Visual 을 Bitmap으로 만들고, 이를 파일로 기록하는 방법이다.
Visual 클래스를 상속받은 객체들에 대해 위의 방법을 적용할 수 있다.