如何在WPF中截取桌面?最好用鼠标光标显示。WPF中的桌面截图
2
A
回答
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);
4
这里有一个CodeProject article。
而且由于屏幕捕获不是WPF特定的,因此该解决方案也不涉及WPF。
相关问题
- 1. 截图桌面DirectX C++/QT
- 2. 量角器中的桌面截图
- 3. 查找桌面截图标志
- 4. 预览桌面与截图程序VB.net
- 5. 在java中截取屏幕截图并将其保存在桌面上
- 6. 登录屏幕上的Windows桌面的屏幕截图
- 7. 服务器的桌面使用PHP的屏幕截图
- 8. Linux中的桌面图标
- 9. 捕获最小化远程桌面的屏幕截图
- 10. 在Windows上通过SSH获取桌面的屏幕截图
- 11. 使用Sikuli保存Microsoft Word桌面的屏幕截图
- 12. 用C程序截取Windows桌面。
- 13. 如何拦截“显示桌面”事件?
- 14. 桌面视图中的图像
- 15. 以使用Python的只有我的桌面图标的全屏截图/ PIL
- 16. 使用scrollviewer截图WPF datagrid
- 17. “Overscroll”桌面视图
- 18. ASP.NET截图页面
- 19. 在桌面视图中拉伸图像
- 20. Silverlight或WPF远程桌面UserControl
- 21. WPF拖动窗口到桌面
- 22. 部署桌面WPF/SQLite应用程序
- 23. 获取页面的截图
- 24. 桌面视图中的复选框
- 25. 拖动swf中的桌面图像
- 26. 桌面视图中的Tableview swift
- 27. 更改代码中的桌面图标
- 28. 桌面视图中的请求链接
- 29. InnoSetup中的多个桌面图标
- 30. WPF应用程序在单击桌面图标时未打开
你走了,你偷了答案,而不是约翰尼斯要去生你的气......看看你做了什么? :))只是开玩笑,感谢代码;) – luvieere 2009-11-22 15:35:31
哈哈,没有probs:D – 2009-11-24 09:17:49