winform高DPI下縮放問題
阿新 • • 發佈:2022-03-31
問題描述:
winform在125%的情況下會造成兩個問題:
- 設計器上設定的size與實際的size不對應;如:在設計器中設定窗體大小為1024,在高dpi下執行無問題,但改為100%顯示就低於1024大小(即size的屬性值也會跟著dpi進行調整)。
- 實際執行時,winform不相容問題,在100%下設計的介面,在125%下執行會變形。
解決方案:
對於第一個問題需要讓vs以正常dpi啟動,可以參考微軟官網對此提供的解決方案,對於使用正常dpi啟動造成的模糊問題暫時沒找到解決方案,有知道的哥們還請指點迷津。
禁用 DPI 感知,以在窗體中進行縮放 - Visual Studio (Windows) | Microsoft Docs
第二個問題的解決方案需要建立程式清單app.manifest
清單裡面有對WPF/winform的相容程式碼,但是都是註釋了的,需要自己取消註釋。
winform則是取消這段的註釋。
然後在app.config檔案中新增程式碼:
<appSettings>
<add key="EnableWindowsFormsHighDpiAutoResizing" value="true" />
</appSettings>
到這裡問題是都已經解決了,有哪裡不清晰的也可以留言。