c# - WPF 中的桌面截图

标签 c# wpf screenshot

如何在 WPF 中截取桌面屏幕截图?最好显示鼠标光标。

最佳答案

不要试图窃取答案,请使用 Johannes 引用的 CodeProject 文章中给出的代码来创建 GDI 位图。然后,您可以使用以下代码将其转换为 BitmapSource 以在 WPF 中使用:

    public static BitmapSource ToBitmapSource(this System.Drawing.Bitmap source)
    {
        var hBitmap = source.GetHbitmap();

        try
        {
            return System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(
                hBitmap,
                IntPtr.Zero,
                Int32Rect.Empty,
                BitmapSizeOptions.FromEmptyOptions());
        }
        catch (Win32Exception)
        {
            return null;
        }
        finally
        {
            NativeMethods.DeleteObject(hBitmap);
        }
    }

其中 NativeMethods.DeleteObject() 的代码是:

    [DllImport("gdi32.dll")]
    [return: MarshalAs(UnmanagedType.Bool)]
    internal static extern bool DeleteObject(IntPtr hObject);

关于c# - WPF 中的桌面截图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1777033/

相关文章:

iphone - 如何使用动画 UIImageView 捕获 iPhone 屏幕?

c# - 通过 SSL 查询 AD 域

c# - 如何在 C# 中从 HTML 字符串操作 DOM?

c# - MVVM中的模型

.net - WPF 密码框 : How do I warn a user that Caps Lock is enabled?

c# - 地铁圆圈按钮背景

iphone - iPhone应用程序全屏发送电子邮件

cordova - cordova-screenshot 插件中的“缺少命令错误”

c# - 如何开始制作 C# RSS 阅读器?

c# - UrlPathEncode 不转义空格