什么引擎呈现 WebBrowser 控件?
What engine renders the WebBrowser Control?
我目前在下面创建的 VB.NET 项目中有一个 WebBrowser
控件:
Private Sub SomeSubToPrintHTMLViaWebBrowser()
' strDocument is the giant blob of HTML text that can be seen in the jsFiddle linked later in the question.
Dim webBrowserHidden As New WebBrowser
AddHandler webBrowserHidden.DocumentCompleted, New WebBrowserDocumentCompletedEventHandler(AddressOf PrintDocument)
webBrowserHidden.DocumentText = strDocument
End Sub
然而,当我使用 WebBrowser 的 .Print
或 .ShowPrintDialog
方法时,即使我在任一 IE 中将 HTML 编码作为网页加载时,页面也会出现格式错误、Edge、Chrome 或 Firefox,它工作得很好。编码也被 W3C Online Validator 验证为 "proper"。
所以我想知道的是,WebBrowser
使用什么引擎来呈现页面?
这是我正在尝试 运行
的 HTML/CSS 编码
这可能是因为 WebBrowser 控件正在模拟旧版本的 IE。
不幸的是,没有简单的解决方法,解决方法需要您修改注册表。
使用注册表编辑器 (regedit.exe) 导航到 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION
添加一个新的 DWORD 条目,其中名称将是应用程序可执行文件的名称,然后将值设置为 2af8(十六进制)或 11000(十进制)。
这将强制 WebBrowser 控件使用 IE11 的呈现引擎。
详情请参考以下link:Internet Feature Controls (B..C)
我目前在下面创建的 VB.NET 项目中有一个 WebBrowser
控件:
Private Sub SomeSubToPrintHTMLViaWebBrowser()
' strDocument is the giant blob of HTML text that can be seen in the jsFiddle linked later in the question.
Dim webBrowserHidden As New WebBrowser
AddHandler webBrowserHidden.DocumentCompleted, New WebBrowserDocumentCompletedEventHandler(AddressOf PrintDocument)
webBrowserHidden.DocumentText = strDocument
End Sub
然而,当我使用 WebBrowser 的 .Print
或 .ShowPrintDialog
方法时,即使我在任一 IE 中将 HTML 编码作为网页加载时,页面也会出现格式错误、Edge、Chrome 或 Firefox,它工作得很好。编码也被 W3C Online Validator 验证为 "proper"。
所以我想知道的是,WebBrowser
使用什么引擎来呈现页面?
这是我正在尝试 运行
的 HTML/CSS 编码这可能是因为 WebBrowser 控件正在模拟旧版本的 IE。 不幸的是,没有简单的解决方法,解决方法需要您修改注册表。
使用注册表编辑器 (regedit.exe) 导航到 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION
添加一个新的 DWORD 条目,其中名称将是应用程序可执行文件的名称,然后将值设置为 2af8(十六进制)或 11000(十进制)。
这将强制 WebBrowser 控件使用 IE11 的呈现引擎。
详情请参考以下link:Internet Feature Controls (B..C)