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