Web浏览器控件中无法正确显示高DPI页面

时间:2013-07-18 01:14:22

标签: c# telerik webbrowser-control dpi

我一直在研究这个问题,似乎无法取得任何进展。

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

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

我也试过为outlook.exe设置“FEATURE_BROWSER_EMULATION”注册表项,但无济于事。由于我的应用程序是Outlook共享加载项,因此我没有设置dpiAware设置的清单。

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

- 编辑 -

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

1 个答案:

答案 0 :(得分:2)

查看下一篇文章You may experience resource limitations in the Graphics Device Interface (GDI) when you use the Microsoft Web Browser control。该帖子与运行Microsoft Office XP或Microsoft Office 2003的WinXP或Server 2003计算机有关。

要看的是FEATURE_IVIEWOBJECTDRAW_DMLT9_WITH_GDI

  

Internet Explorer 9.默认情况下,WebBrowser控件使用Microsoft DirectX呈现网页,这可能会导致使用Draw方法从某些网页创建位图的应用程序出现问题。