我正在使用System.Drawing.Graphics.CopyFromScreen獲取桌面的部分屏幕截圖。我注意到一些好奇的行爲。在某些機器上,當應用程序(WPF)窗口的AllowsTransparency =「True」時,調用CopyFromScreen將捕獲窗口下方的內容。但在其他機器上,它也捕獲了調用窗口。Graphics.CopyFromScreen有時會捕獲透明窗口,有時不會
我試過它在很多機器和操作系統上,還沒有找到模式。在透明窗口下捕獲的XP和Windows 7筆記本電腦上。在我們擁有的一個Windows 7桌面上,它捕獲窗口本身。 Aero或其他Windows 7顯示功能似乎沒有任何區別。
難道是顯卡問題?是否有任何方法可以在所有機器上獲得一致的行爲,或預測或檢測何時會發生此問題?
編輯感謝Hans Passant提供的鏈接以及一些進一步的測試,現在我明白這個問題只與窗口透明相關。在某些機器上,CopyFromScreen捕獲所有窗口,在其他機器上它只捕獲非透明窗口。
謝謝。我會檢查出來的。 – Sugrue 2012-04-27 16:32:45
該答案鏈接很有趣。在我的情況下,我不想捕捉半透明窗口。我仍然不明白爲什麼相同的應用程序在不同的系統上表現不同。 – Sugrue 2012-04-27 16:53:17
我沒有從問題中得知。解決方法就是隱藏你的窗戶並旋轉你的腳後跟幾秒鐘,以便所有未被遮擋的窗戶都有機會自己畫。 – 2012-04-27 16:56:34