我對此有些迷惑。我們有一個c#/ WPF屏幕捕獲工具,它使用Graphics.CopyFromScreen抓取桌面的一部分。C#wpf窗口this.top在Win8上返回錯誤的位置?
它可以在許多不同的機器上正常工作,包括XP,Win7和至少一個Windows8虛擬機。
我們遇到了一臺擁有Win8的宏碁ZS600,而且我們看到了一個奇怪的效果,我想不出來。
當您捕捉時,它會抓取尺寸正確但位置錯誤的圖像。它偏移到頂部和左側。不是一個固定的金額。當捕獲窗口位於屏幕0,0位置時很好,但是當您將捕獲窗口從原點移開時,偏移量會增加。
我已經通過代碼,發現窗口位置(this.Top和this.Left)報告錯誤的數字。更奇怪的是,我們在Acer Z5771上試過這個,它實際上是相同的硬件設置,除了它使用Windows 7.我們嘗試更新Zs600圖形驅動程序,但它沒有任何效果。
有沒有人明白這一點,或建議修復或解決方法?
編輯:我已經把一個簡單的應用程序,在問題機器上,顯示效果。在我的開發機器上,它工作正常。在這裏下載:https://s3-eu-west-1.amazonaws.com/kdownload/Tools/CaptureTool_app.zip
或下載編譯版本:https://s3-eu-west-1.amazonaws.com/kdownload/Tools/capturetest.exe
編輯:下面是該問題的系統上使用捕獲應用程序的兩張截圖。 https://s3-eu-west-1.amazonaws.com/kdownload/Tools/ProblemScreencap.png(編輯 - 在屏幕截圖我已顯示的數字對於x & y隨寬度&高度切換,現在固定在上載的代碼,請忽略此)
你能嘗試一些固定的號碼,然後看看會發生什麼? – PsyKzz 2013-03-02 19:49:35
嘗試固定號碼。捕捉部分抓住屏幕的右側部分。問題是wpf窗口給了我錯誤的位置。 – Sugrue 2013-03-02 19:51:23
您可以創建另一個不可見的窗口作爲您用作參考的骯髒的黑客,如果它的WPF的位置使得新窗口在左上角始終是靜態的,例如工作? – PsyKzz 2013-03-02 20:09:34