2

关键是,我需要转换为 System.Drawing.Bitmap (.Net Framework 2.0) 以获取 WPF 网格的单帧及其内容。

我读过VisualBrushDrawingBrush但我无法想象它应该如何工作。

我可以成功地将任何 WPFBitmapSource转换为我的System.Drawing.Bitmap。但是如何BitmapSource从我的网格接收呢?

谢谢

4

1 回答 1

5

要将 a 转换VisualBitmapSource您可以使用RenderTargetBitmap,VisualBrushDrawingVisual:

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;
}   
于 2011-07-13T10:04:59.430 回答