在目前高分屏流行的狀況下,windows縮放與佈局仍然設置爲100%就顯得過小(特別是筆記本),一般會調整爲125%或150%,windows
VS在縮放與佈局設置爲非100%的時候,就會自動啓動DPI感知模式,以防止VS界面模糊。app
但也會致使一個問題佈局
就是在高DPI下(非100%縮放與佈局)設計的winform程序this
當拿到不一樣的縮放條件下運行時就會遇到界面變形或不一致的問題,設計
咱們這裏提供了一個解決方案來防止高DPI下設計出的winform程序界面變形(可是不能解決winform程序在高DPI下可能變糊)orm
即禁用VS的高DPI感知模式,讓VS運行在標準DPI環境下,這樣設計出來的程序不管在何種DPI環境下都不會產生變形(但可能模糊,咱們這裏主要解決變形問題)ci
緣由:rem
With the extreme differences in display DPIs, especially in modern 2-in-1 devices, this can still happen with the most current versions of the .NET Framework and Visual Studio. To address this in a team using different DPI displays, make sure Visual Studio always starts in a non-DPI-aware mode, so the Windows Forms designer always bases the layout calculation on 96 DPI. To this end, simply set the following registry key to disable Visual Studio's HighDPI awarenessit
因爲顯示DPI的極端差別,尤爲是在現代2合1設備中,這種狀況在最新版本的.NET Framework和Visual Studio中仍可能發生。 要在使用不一樣DPI顯示的團隊中解決此問題,請確保Visual Studio始終以非DPI感知模式啓動,所以Windows窗體設計器始終將佈局計算的基礎設置爲96 DPI。 爲此,只需設置如下注冊表項便可禁用Visual Studio的HighDPI意識:io
解決方法:
一、手動在註冊表中添加項
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\devenv.exe]
"dpiAwareness"=dword:00000000
二、Bat一鍵處理(新建文本文件.txt 改後綴爲 bat,將下面代碼粘貼到文本文件裏保存,雙擊執行便可)
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\devenv.exe" /v "dpiAwareness" /t REG_DWORD /d "0"