解Win10DPI技術之前,首先先來回顧下Windows XP以來采取過的DPI縮放技術。
傳統DPI縮放機制
傳統DPI縮放機制被Windows XP所采用,由開發者自行檢查字體縮放后是否存在潛在的問題。
優點:字體清晰
缺點:排版錯亂(UI元素文本框重疊、表格文字溢出、界面超越屏幕邊緣)
現代DPI縮放機制:DPI虛擬化
現代DPI縮放機制被Windows Vista/Win7/Win8/Win8.1所采用。如果DPI縮放比例不超過125%,繼續使用傳統DPI縮放機制,超過之后就開啟這個新模式。需要指出的是,125%縮放比例在多數情況并不會造成嚴重的界面錯亂,而且縮放后字體清晰。
具體來說,對于報告支持DPI自適應的程序,系統將停用DPI縮放。
對于沒有報告支持DPI自適應的程序,系統將采用如下機制:
縮放比例如果為100%的整數倍,系統采用一點對多點進行縮放。當選擇縮放比例為200%/300%/...,原有界面中1點依次對應4點/9點...。
縮放比例如果為非100%的整數倍,系統首先給應用提交虛擬分辨率,然后由系統離屏渲染軟件界面,再放大到用戶選擇的DPI級別上。
以1920*1080分辨率,縮放比例150%為例。系統首先向應用提交當前的分辨率為1280x720,獲得離屏渲染的界面以后,再使用常規的圖像插值算法進行放大。需要提醒的是,插值將不可避免的導致界面模糊,字體鋸齒等一系列問題。
優點:界面正常
缺點:界面模糊
Win10 DPI縮放機制:完全的DPI虛擬化
Win10 DPI縮放機制絕大多數部分與現代DPI縮放機制一致,唯一不同是所有DPI級別(包括125%)均采用DPI虛擬化機制,保證界面正常。
左側為Win10 DPI機制,右側為Win8.1 DPI機制
最后簡要介紹下MAC DPI縮放機制,Retina屏幕統一采用200% DPI縮放級別,實現原理和Windows沒有任何區別。唯一的不同是,MAC OS X軟件在顯示視頻和圖像時,視頻圖像區域采用100% DPI,以保證視頻和圖片的顯示質量。
如果你在Win10中調整DPI縮放后部分系統窗口字體出現模糊現象,可參考《Win10高分屏更改DPI后字體模糊?試試這個小工具》來解決。
即便Win10更新到現在的1803版,它對高分屏的支持還是一如既往的%¥#^$(省略粗話若干),在2K或者4K屏幕上顯示,100%字小圖小,設置了一定的縮放比例呢,傳統的Win32軟件(.exe)又“糊”的一塌糊涂,該怎么整呢?
首先還是從系統的設置入手,依次進入“設置-系統-顯示”,在右側的“縮放與布局”下點擊“高級縮放設置”,將“允許Windows嘗試修復應用,使其不模糊”的選項打開,雖然前后變化不大,但在某些項目上能看出稍微有那么一丟丟的改變(尤其是125%和175%)。
之后呢,我們可以稍微設置下應用程序,在想要設置的程序快捷方式上用鼠標右鍵選擇屬性,在“兼容性”選項卡下,點擊進入“更改高DPI設置”。
勾選“替代高DPI縮放行為”,在下拉菜單中選擇“應用程序”,可以有效的緩解縮放導致的應用程序顯示虛化的問題,但由于程序開發不合規等問題(沒有按照微軟標準API接口執行),有的程序界面會變得極為怪異,出現類似的問題,只要將下拉菜單中的選項改成“系統(增強)”即可。
用了這幾種方法后,基本上應用程序類的都能看了,但像Windows固定菜單字體還是會慘不忍睹,這問題幾百年都未曾修復,小編也只能從注冊表中找辦法了。
Win+R組合鍵后,輸入regedit進入注冊表編輯器,定位到
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SideBySide
在右側新建名為“PreferExternalManifest”的DWROD(32位)值,并將其數值數據設置為1。
然后再定位到
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\SideBySide
重復上面新建鍵值的步驟。
然后新建個文本文檔,把下列代碼復制進去:
Microsoft Management Console
true
把文件重命名為“mmc.exe.manifest”(含擴展名),然后丟到C:\windows\system32下即可,這么操作會后系統各種窗口顯示效果就好多了。
哦,如果實在懶得各種設置,別著急,還有第三方軟件可以幫忙,像“No!!MeiryoUI”可以設置系統字體大小,解決顯示模糊問題,或者“Windows 10 DPI Fix”可以讓軟件接管系統設置縮放設置,提升顯示效果。對了,經過其他小編的提醒,還有個終極大招,讓近視眼帶個低度數的眼鏡,這樣就算是模糊的字體,看著也不是太大的問題(反正都看不清)。