如何在WPF中截取桌面的屏幕截图?最好用鼠标光标显示。
答案 0 :(得分:4)
此处有一个CodeProject article。
由于屏幕截图不是特定于WPF的,因此该解决方案也不涉及WPF。
答案 1 :(得分:4)
在不试图窃取答案的情况下,使用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);