W8.1 UWP / Xaml WebView在高DPI屏幕上渲染小

本文关键字:屏幕 DPI 在高 UWP Xaml WebView W8 | 更新日期: 2023-09-27 18:12:10

我们的windows商店应用程序有一个问题,它使用WebView来显示自定义生成的html文件系统。该应用程序是用WPF/Xaml编写的,因此本地UI组件会根据用户设置的屏幕缩放自动缩放——然而嵌入的WebView不会——这意味着在我笔记本电脑的4k屏幕上,WebView字体非常小。目前我们必须支持windows 8.1,所以我们正在针对这个目标进行编译——这意味着我们正在嵌入一个IE11实例。我认为设置浏览器缩放级别可能是一个短期的解决方案,但它最终会在主窗口上出现水平滚动条,所以这是不可能的。

我发现了一篇MSDN文章,其中显示底层COM组件没有自动被通知其嵌入的应用程序的高DPI意识的问题。本文展示了如何通过重写组件发送的标志来解决这个问题。然而,沿着这条路走下去,似乎在UWP平台上可用的WebView被进一步抽象了,你不能抓住上述修复工作所需的Document MSHTML对象的实例。

我还注意到这个答案似乎推断出windows 8.1应用程序和windows 10操作系统之间存在比例因子冲突,但我无法找到有关该特定问题的任何更多信息。

任何建议都将是最受欢迎的,因为我无法想象我们所做的是如此罕见。

谢谢

W8.1 UWP / Xaml WebView在高DPI屏幕上渲染小

事实证明,这是由多种因素共同造成的:

  1. 我们正在使用Bootstrap 3,它将根HTML字体大小设置为10px,并且IE WebView (Even Edge)使用字体大小调整来处理DPI缩放,具有基本字体大小设置禁用此功能。
  2. 针对Windows 8.1的Windows应用程序的最大缩放为200%(因为这是当时支持的最大缩放)。然而,Windows 10将这一限制提高到了400%。我的笔记本电脑屏幕设置为250%,因为它是4k的,但是当我把windows 8.1应用程序放在它上面时,它们的最大值是200%,所以也有轻微的尺寸减小。

我仍然认为这是一个相当严重的问题在Windows商店WebView控件,如果我打开引导网站在标准边缘,它是好的。即使我在IE11上做同样的事情,即使IE11本身根本不处理DPI,页面内容看起来也很好。