现在的消费类电子设备屏幕越做越小,分辨率却反而在往上增加,例如 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_USERControl PanelDesktop 项 目下,键名为"LogPixels"。默认地,系统里不会有这个键和键值,但是如果你设置过 DPI 缩放,那么这个键就出现了。默认设置下,Windows 的 DPI 绝对值其实是96,只不过通过 DPI 设置界 面是看不出来这一点的。这里给出 DPI 设置与注册表键值的对应关系:
DPI 设置 | 注册表键值 |
较小 - 100% | 96 |
中等 - 125% | 120 |
较大 - 150% | 144 |
可以看出,注册表存放的键值是真实的 DPI 绝 对值,而 UI 里面显示的百分比是基于"96 '=' 100%"这个定义的。因此,手动调 整 DPI 设置后,你就可以轻松算出真实的 DPI 值了。对于像 Surface Pro 这样的设备,系统已经会 自动将默认 DPI 设为 150%。