現(xiàn)在的消費(fèi)類電子設(shè)備屏幕越做越小,分辨率卻反而在往上增加,例如 Surface Pro,10.6 寸的屏幕,1080p 的全高清顯示,會讓 Windows 顯示的文字變得異常的小。這個(gè)現(xiàn)象其實(shí)是因?yàn)槠聊稽c(diǎn)距比標(biāo)準(zhǔn)的要小而導(dǎo)致的(約207.82點(diǎn)/英寸,而標(biāo)準(zhǔn)的約為96點(diǎn)/英寸),顯示效果雖更加細(xì)膩, 但是 Windows 對文字的渲染仍舊是默認(rèn)的 DPI(通過下文可以知道它是96點(diǎn)/英寸),所以文字也就變小了。
要讓文字看起來不那么吃力,我們一般的做法是放大系統(tǒng)的 DPI。其實(shí)這個(gè)有點(diǎn)類似于數(shù)字圖像采樣的 PPI 的概念了,假設(shè)調(diào)高 Windows DPI,讓 Windows 針對 UI 元素的采樣分辨率變高,那么重新采樣過后的 UI 元素會獲得比之前更大的數(shù)字分辨率,長和寬均獲得了更多的像素,在同一塊屏幕上,占用的顯示像素點(diǎn)就要比以前多,因此,你看到的元素就變大了。
可有的時(shí)候,萬一我們自定義了一個(gè)過大的 DPI (例如500%),在應(yīng)用并且重新登錄后,可以發(fā)現(xiàn)系統(tǒng)界面元素變得過大,于是我們再也不能通過操縱 UI 的方式,前往控制面板找到這個(gè)設(shè)置將其改回來。此時(shí)我們有個(gè)校正的辦法是重啟到安全模式。
DPI 的設(shè)置是用戶相關(guān)的,也就是說,你所做的 DPI 設(shè)置,僅對你當(dāng)前的這個(gè)用戶有效。因此,DPI 的設(shè)置也是保存在注冊表的 HKCU 分支下面。比直接操作注冊表更安全的方法是重啟到安全模式,然后將 DPI 的設(shè)置改回正常以后,再重新啟動電腦。這是因?yàn)?,安全模式下不?yīng)用 DPI 縮放設(shè)置,所有 UI 元素的大小將恢復(fù)正常。
注意,在高級啟動選項(xiàng)里,如果選擇“啟用低分辨率視頻”模式,那么 UI 元素的尺寸還將是過大的,而且反而會加劇(因?yàn)榉直媛矢土?。這個(gè)模式可以用來解決顯卡驅(qū)動的一些問題,但是,DPI 設(shè)置與顯卡驅(qū)動無關(guān),因此請注意選擇進(jìn)入安全模式修復(fù)這一問題。
如果你還想了解 DPI 設(shè)置在注冊表中存放的位置的話,那么以 Win8 為例,它位于 HKEY_CURRENT_USER\Control Panel\Desktop 項(xiàng)目下,鍵名為“LogPixels”。默認(rèn)地,系統(tǒng)里不會有這個(gè)鍵和鍵值,但是如果你設(shè)置過 DPI 縮放,那么這個(gè)鍵就出現(xiàn)了。默認(rèn)設(shè)置下,Windows 的 DPI 絕對值其實(shí)是96,只不過通過 DPI 設(shè)置界面是看不出來這一點(diǎn)的。這里給出 DPI 設(shè)置與注冊表鍵值的對應(yīng)關(guān)系:
可以看出,注冊表存放的鍵值是真實(shí)的 DPI 絕對值,而 UI 里面顯示的百分比是基于“96 '=' 100%”這個(gè)定義的。因此,手動調(diào)整 DPI 設(shè)置后,你就可以輕松算出真實(shí)的 DPI 值了。對于像 Surface Pro 這樣的設(shè)備,系統(tǒng)已經(jīng)會自動將默認(rèn) DPI 設(shè)為 150%。