Delphi TWebBrowser window.devicePixelRatio 属性

Delphi TWebBrowser window.devicePixelRatio property

在我们的应用程序中,我们使用 Delphi 的 TWebBrowser 组件来显示网页内容。现在如果 windows 有缩放监视器,例如 125% 缩放,我们就会遇到问题。在这种情况下,某些 HTML-控件未正确渲染,因为 JavaScript 中的 window.devicePixelRatio 属性 未更新但保持在 1,虽然它应该是 1.25 125% 比例的显示器。

是否有解决此问题的可能性?从 JavaScript 内部无法更改此值,但可能从 Delphi 一侧?

编辑:我试用了嵌入式铬,效果很好。但目前无法从 ie 迁移到 chromium。

样本HTML:

<!DOCTYPE html>
<html>
    <body>
        <div style="width: 100px; height: 25px; border: 1px solid black; border-radius: 4px; overflow: hidden">
            <span style="font-size:10pt; white-space: pre">Long sample text</span>
        </div>
    </body>
</html>

在嵌入式 IE 中,文本被截断为

即使它已过时,您也会发现为您的应用程序启用 FEATURE_96DPI_PIXEL 将 return 正确的像素比:

HKEY_LOCAL_MACHINE (or HKEY_CURRENT_USER)
   SOFTWARE
      Microsoft
         Internet Explorer
            Main
               FeatureControl
                  FEATURE_96DPI_PIXEL
                     yourapplication.exe = (DWORD) 00000001

推荐的方法是启用 DOCHOSTUIFLAG_DPI_AWARE 标志。