高DPI页面未在web浏览器控件中正确显示

本文关键字:控件 显示 浏览器 web DPI | 更新日期: 2023-09-27 18:23:35

我对此已经研究了一段时间,似乎没有取得任何进展。

我正在开发一个Outlook共享加载项(在.Net 4.0上的C#中),该加载项可根据用户请求在web浏览器控件中加载网页。我已尝试使用Windows.Forms.WebBrowser控件和AxSHDocVw.AxWebBrowser控件。我正在加载的网页有许多html控件,包括(但不限于)基本的html/asp.net文本框和Telerik按钮和redSelect控件的标签。

我遇到的问题是,当用户设置了高DPI时,网页控件的大小不会正确调整。也就是说,标签和文本框的大小被正确调整,但其他控件——主要是Telerik控件——没有被重新调整大小(或者是它们被缩小了??)。然而,如果我在IE、FF、Chrome或任何其他浏览器中以高DPI打开同一网页,则所有控件都会正确缩放。

我也尝试过为outlook.exe设置"FEATURE_BROWSER_EMULATION"注册表项,但没有成功。由于我的应用程序是outlook共享外接程序,因此我没有设置dpiAware设置的清单。

有人遇到过这样的问题吗?任何帮助都将不胜感激。谢谢

--编辑--

在进一步的测试中,我发现问题是Outlook已经被声明为dpiAware。正因为如此,Telerik控件无法缩放。有没有一种方法可以指示web浏览器控件显示为dpi未知?或者有更好的方法来解决这个问题吗?

高DPI页面未在web浏览器控件中正确显示

查看下一篇文章当您使用Microsoft Web Browser控件时,您可能会在图形设备接口(GDI)中遇到资源限制。该帖子与运行Microsoft Office XP或Microsoft Office 2003的WinXP或Server 2003计算机有关。

还有一个要看的是FEATURE_IVIEWBOBJECTDRAW_DMLT9_WITH_GDI

Internet Explorer 9。默认情况下,WebBrowser控件使用Microsoft DirectX渲染网页,这可能会给使用Draw方法从某些网页创建位图的应用程序带来问题。