【发布时间】:2010-12-19 02:54:36
【问题描述】:
如何在 WPF 中截取桌面的屏幕截图?最好是显示鼠标光标。
【问题讨论】:
标签: c# wpf screenshot
如何在 WPF 中截取桌面的屏幕截图?最好是显示鼠标光标。
【问题讨论】:
标签: c# wpf screenshot
不要试图窃取答案,使用 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);
【讨论】: