【问题标题】:Desktop screenshot in WPFWPF 中的桌面屏幕截图
【发布时间】:2010-12-19 02:54:36
【问题描述】:

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

【问题讨论】:

    标签: c# wpf screenshot


    【解决方案1】:

    不要试图窃取答案,使用 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);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多