public static Bitmap DrawingVisualToBitmap(DrawingVisual visual, Rect rect)
{
var bmp = new RenderTargetBitmap((int) rect.Width, (int) rect.Height, 96, 96, PixelFormats.Pbgra32);
bmp.Render(visual);
var encoder = new BmpBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create(bmp));
Bitmap bitmap;
using (var stream = new MemoryStream())
{
encoder.Save(stream);
bitmap = new Bitmap(stream);
}
return bitmap;
}