关键是,我需要转换为 System.Drawing.Bitmap (.Net Framework 2.0) 以获取 WPF 网格的单帧及其内容。
我读过VisualBrush,DrawingBrush但我无法想象它应该如何工作。
我可以成功地将任何 WPFBitmapSource转换为我的System.Drawing.Bitmap。但是如何BitmapSource从我的网格接收呢?
谢谢
关键是,我需要转换为 System.Drawing.Bitmap (.Net Framework 2.0) 以获取 WPF 网格的单帧及其内容。
我读过VisualBrush,DrawingBrush但我无法想象它应该如何工作。
我可以成功地将任何 WPFBitmapSource转换为我的System.Drawing.Bitmap。但是如何BitmapSource从我的网格接收呢?
谢谢
要将 a 转换Visual为BitmapSource您可以使用RenderTargetBitmap,VisualBrush和DrawingVisual:
public BitmapSource ConvertToBitmapSource(UIElement element)
{
var target = new RenderTargetBitmap((int)(element.RenderSize.Width), (int)(element.RenderSize.Height), 96, 96, PixelFormats.Pbgra32);
var brush = new VisualBrush(element);
var visual = new DrawingVisual();
var drawingContext = visual.RenderOpen();
drawingContext.DrawRectangle(brush, null, new Rect(new Point(0, 0),
new Point(element.RenderSize.Width, element.RenderSize.Height)));
drawingContext.Close();
target.Render(visual);
return target;
}