关于WPF:WPF-使用RenderTargetBitmap将Canvas保存为图片

6次阅读

共计 575 个字符,预计需要花费 2 分钟才能阅读完成。

在 WPF 中对控件进行截图是十分不便的,应用 RenderTargetBitmap 即可实现。然而如果是对 Canvas 这种类型的容器控件进行截图,截图的范畴可能不准。此时能够应用如下办法对 Canvas 进行截图,办法来自 Clemens。

public void WriteToPng(UIElement element, string filename)
{var rect = new Rect(element.RenderSize);
    var visual = new DrawingVisual();

    using (var dc = visual.RenderOpen())
    {dc.DrawRectangle(new VisualBrush(element), null, rect);
    }

    var bitmap = new RenderTargetBitmap((int)rect.Width, (int)rect.Height, 96, 96, PixelFormats.Default);
    bitmap.Render(visual);

    var encoder = new PngBitmapEncoder();
    encoder.Frames.Add(BitmapFrame.Create(bitmap));

    using (var file = File.OpenWrite(filename))
    {encoder.Save(file);
    }
}
正文完
 0