我有一個傳統的WinForms應用程序,我希望跨會話保存窗口的位置和大小。在FormClosing和Load事件中,我一直使用GetWindowPlacement和SetWindowPlacement。我得到的問題是,在更高的DPI設置(如中等,125%的尺寸)時,尺寸不斷膨脹。我將以一定的大小調用SetWindowPlacement,但是當調用GetWindowPlacement時,即使窗口大小一直相同,這些數字也會增加25%。在表單中保存可調整大小的元素的大小時存在同樣的問題。GetWindowPlacement/SetWindowPlacement無法在WinForms中工作以獲得較高的DPI
現在這工作正常,如果我創建一個新的WinForms項目:即使在更高的DPI運行,大小保持穩定。我猜測這個項目還有一些遺留設置,或者一些神祕的表單設置讓它變得糟糕,但我無法找到位置。
我在兩個項目上都撥打了IsProcessDPIAware,兩者都是true
。有誰知道可能是什麼原因造成的?
+1提示AutoScaleMode。 – RandomEngy 2010-04-09 17:21:15