如何让WebBrowser控件显示现代内容?

我创build了一个使用WebBrowser控件的Winforms应用程序; 我dynamic地分配它的Uri。 它工作一段时间,但现在我得到这个味精:

您似乎正在使用不受支持的浏览器。 较旧的浏览器可能会使您的安全风险较低,速度较慢,无法使用较新的Google地图function。 要访问Google地图,您需要更新到现代浏览器。

最后两个字是链接,在这个链接之后,我看到:

您目前正在使用… IE 11

所以,好吧,WebBrowser组件使用IE 11; 我该如何改变?

我的机器设置为使用Chrome浏览器; 也许控制应该使用你当前的浏览器是什么? 我不知道这是否可行。

UPDATE

好的,我愿意试试Reza的build议。 但是,当我导航到registry编辑器中的指定位置,并右键单击右窗格添加一个新条目时,它有三个选项:

密钥,string值,二进制值

我认为string值是“.exe”string,二进制值是“双字”vals,但“键”值是什么?

WebBrowser控件使用与您的操作系统安装相同的Internet Explorer版本,但默认情况下不使用最新的文档模式,并以兼容模式显示内容。

作为一种症状,您可以在Internet Explorer中看到该网站,但WebBrowser控件不能正确显示该网站,并且对于某些网站也显示脚本错误。

您可以告诉WebBrowser控件在WebBrowser控件中使用没有兼容模式的最新文档模式。 您可以按照此处的说明禁用使用registry的设置。

这是我使用的设置。 我在HKEY_CURRENT_USER应用设置使其工作:

 HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION 

和这个值:

 "YourApplicationFileName.exe"=dword:00002af9 "YourApplicationFileName.vshost.exe"=dword:00002af9 

不要忘记vshost.exe 。 当你在Visual Studio中运行你的程序时,你需要它。

它使浏览器控件使用Internet Explorer 11因此网页以IE11边缘模式显示,而不pipe声明的!DOCTYPE指令如何。 无法声明!DOCTYPE指令会导致页面加载到怪癖中。

要创build条目,请右键单击右窗格的空白区域,然后在selectdword值后出现的窗口中,selecthex,然后input2af9

在这里输入图像描述

C#WebBrowser类基本上是一个IE包装,正因为如此,它不能改变。

看到这个链接:

WebBrowser控件是用Internet Explorer安装的组件的托pipe包装器。

对于替代品,你可以检查出来

WebKit.NET

GeckoFX