WPF神器揭秘:一键截图,轻松实现控件屏幕截图,便捷高效

作者:微信公众号:【架构师老卢】
12-21 14:35
474

在WPF中截取控件的屏幕截图可以通过使用RenderTargetBitmap类实现。以下是详细讲解以及相应实例代码。

using System;
using System.Windows;
using System.Windows.Media;
using System.Windows.Media.Imaging;

public class ScreenshotHelper
{
    public static void CaptureAndSaveScreenshot(FrameworkElement element, string filePath)
    {
        // 创建 RenderTargetBitmap
        RenderTargetBitmap renderTargetBitmap = new RenderTargetBitmap(
            (int)element.ActualWidth,
            (int)element.ActualHeight,
            96, // DPI X
            96, // DPI Y
            PixelFormats.Default);

        // 渲染控件到 RenderTargetBitmap
        renderTargetBitmap.Render(element);

        // 创建编码器并保存截图
        PngBitmapEncoder pngEncoder = new PngBitmapEncoder();
        pngEncoder.Frames.Add(BitmapFrame.Create(renderTargetBitmap));

        using (var stream = System.IO.File.Create(filePath))
        {
            pngEncoder.Save(stream);
        }
    }
}

// 在 WPF 应用中的使用示例
public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
    }

    private void CaptureButton_Click(object sender, RoutedEventArgs e)
    {
        // 截取 Grid 控件的屏幕截图并保存到文件
        ScreenshotHelper.CaptureAndSaveScreenshot(MyGrid, "Screenshot.png");
    }
}

上述代码中,ScreenshotHelper类提供了一个静态方法CaptureAndSaveScreenshot,接受一个FrameworkElement参数和一个文件路径。该方法使用RenderTargetBitmap类来渲染控件并保存截图。

MainWindow中的按钮点击事件中,调用了CaptureAndSaveScreenshot方法,截取了名为MyGrid的Grid控件的屏幕截图,并保存到当前目录下的Screenshot.png文件。

这个例子演示了如何通过WPF的RenderTargetBitmap类截取控件的屏幕截图,并可以根据实际需求保存到文件或进行其他处理。

源代码获取:公众号回复消息【code:28926

相关代码下载地址
重要提示!:取消关注公众号后将无法再启用回复功能,不支持解封!
第一步:微信扫码关键公众号“架构师老卢”
第二步:在公众号聊天框发送code:28926,如:code:28926 获取下载地址
第三步:恭喜你,快去下载你想要的资源吧
相关留言评论
昵称:
邮箱:
阅读排行