我最近在一个项目中添加了 DPI 缩放,以确保项目中的 UI 元素(使用画布绘制)在不同设备上具有合理一致的大小。起初这似乎可行,但在添加代码一天后,我突然在我的 4k 笔记本电脑上获得了大量的 UI 元素。我的高 DPI 移动设备和正常 DPI 桌面显示器以预期大小显示。令我困惑的是,在我实现 window.devicePixelRatio 的那个晚上,输出的值是“1”。但是今天,该值为“2.5”,我没有更改任何设置。
机器运行 Windows,默认设置为 %250 比例,自从我拿到笔记本电脑以来,如果我将其设置为 %100,DPI 输出将返回“1”。这不是很有帮助,因为一切都很小,包括 UI 元素。所有这些也适用于更改页面缩放。
问题最终似乎是尺度被应用了两次,所以对于所需的 n 标量,我得到 n^2。我怀疑问题出在浏览器级别以下,因为这台机器上的所有浏览器(Chrome、Opera、Edge、IE)在膨胀的 UI 元素上显示相同。
我需要弄清楚如何让我的计算机回到主显示设置设置为 %250 但 window.devicePixelRatio 返回值“1”的状态。我也很想知道为什么这首先会发生变化,这样我以后就可以避免它。