• WPF -- 使用RenderTargetBitmap将Canvas保存为图片


    在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);
        }
    }
    
    转载请注明出处,欢迎交流。
  • 相关阅读:
    01、MySQL_简介
    算法—打擂台法
    第10章 对文件的输入输出
    第9章 用户自己建立数据类型
    Spring Cloud
    JUC
    Swagger Learing
    JUC
    Spring Data
    SpringCloud
  • 原文地址:https://www.cnblogs.com/louzixl/p/14679911.html
Copyright © 2020-2023  润新知