System.Drawing.Graphics.CopyFromScreen を使用して、デスクトップの部分的なスクリーンショットを取得しています。奇妙な行動に気付きました。一部のマシンでは、アプリケーション (WPF) ウィンドウに allowTransparency="True" がある場合、CopyFromScreen を呼び出すと、ウィンドウの下にあるものをキャプチャします。ただし、他のマシンでは、呼び出しウィンドウもキャプチャします。
多くのマシンやオペレーティング システムで試してみましたが、パターンは見つかりませんでした。XP および Windows 7 ラップトップでは、透明なウィンドウの下をキャプチャします。私たちが持っている 1 つの Windows 7 デスクトップでは、ウィンドウ自体をキャプチャします。Aero、またはその他の Windows 7 ディスプレイ機能は、違いがないようです。
グラフィックカードの問題でしょうか?すべてのマシンで一貫した動作を取得する方法、またはこの問題がいつ発生するかを予測または検出する方法はありますか?
EDIT以下の Hans Passant によって提供されたリンクと、さらにいくつかのテストのおかげで、この問題がウィンドウの透明度のみに関連していることがわかりました。一部のマシンでは、CopyFromScreen はすべてのウィンドウをキャプチャしますが、他のマシンでは不透明なウィンドウのみをキャプチャします。