让程序不随Win10的DPI缩放,windows高分屏dpi缩放
在了解Win10技术之前,我们先来回顾一下Windows XP以来采用的DPI缩放技术。(灰)点/英寸(扫描仪的清晰度参数)
传统的DPI缩放机制
Windows XP采用传统的DPI缩放机制,开发者可以检查字体缩放后是否存在潜在问题。
优点:字体清晰
缺点:排版混乱(UI元素文本框重叠,表格文本溢出,界面超出屏幕边缘)
现代DPI扩展机制:DPI虚拟化
Windows Vista/Win7采用现代的DPI缩放机制。如果DPI缩放比例不超过125%,继续使用传统的DPI缩放机制,然后开启这个新模式。需要指出的是,125%缩放在大多数情况下不会造成严重的界面混乱,缩放后字体清晰。/Win8/Win8.1
具体来说,对于报告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缩放机制。视网膜屏幕采用200% DPI变焦级别,实现原理和Windows没什么区别。唯一不同的是,MAC OS X软件在显示视频和图像时,视频图像区域采用100% DPI,以保证视频和图片的显示质量。