【问题标题】:Screen Capture Complications with WPF window on top屏幕捕获并发症与顶部的 WPF 窗口
【发布时间】:2011-03-09 10:48:52
【问题描述】:

我需要以透明的 WPF 窗口作为最顶层窗口来捕获整个屏幕。 我尝试了两种方法:

  1. 使用 System.Windows.Drawing.Graphics.CopyFromScreen
  2. 使用 WINAPI GetDesktopWindow

两种方法产生相同的结果。除了最上面的透明 WPF 窗口外,我得到了整个屏幕。 WPF 窗口 w 是通过以下方式创建的:

w.AllowsTransparency = true;
w.WindowStyle = System.Windows.WindowStyle.None;
w.Background = new SolidColorBrush( Color.FromArgb( 1, 0, 0, 0 ) );
w.Topmost = true;

当然还有一些内容。窗口覆盖整个屏幕表面。

显然,WPF 窗口在 GetDesktopWindow 中未包含的表面上绘制。

任何人都可以对此有所了解并分享一些想法如何真正获得整个屏幕表面吗?

【问题讨论】:

    标签: wpf screenshot


    【解决方案1】:

    刚刚找到解决办法:

    据我所知,Graphics.CopyFromScreen 方法没有解决方案,因为您需要 OR CopyPixelOperation.CaptureBlt 和 CopyPixelOperation.SourceCopy 但您不能。通常的 M$ 不一致疯狂...

    但是,WINAPI 方法有效,因为您可以在使用 BitBlt 时结合 SRCCOPY 和 CAPTUREBLT。如果没有 CAPTUREBLT,则不会包含透明和分层窗口。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-16
      • 2020-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多