在VB.NETWinForm或WPF应用程序中,如果需要加载一个网页,通常会使用WebBrowser控件。默认情况下,这个控件会使用IE7的渲染模式,无论是在WPF应用程序还是WinForms应用程序中使用它。这可能会导致加载的网页看起来和预期的不一样,或者在某些情况下,可能会收到一个提示,要求更新网络浏览器(IE)。
有几种方法可以覆盖默认的渲染行为:
如果可以控制网页的内容,最简单的方法是使用IE Edge模式头部。这是第一种方法的示例:
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
也可以指定IE的版本:
<meta http-equiv="X-UA-Compatible" content="IE=10"/>
接下来,将展示如何使用第二种方法,通过VB.NET类(WebBrowserUpdater)在代码中应用。
使用代码:
Public Class WebBrowserUpdater
'...省略部分代码...
End Class
这个类可以帮助运行应用程序,使用主机机器上安装的最新版本的IE。
需要注意的要点:
Public Shared Function InternalCheckIsWow64() As Boolean
'...省略部分代码...
End Function
注册表值的设置在这里完成:
Private Shared Sub FixBrowserVersion_Internal(ByVal root As String, ByVal appName As String, ByVal ieVer As Integer)
'...省略部分代码...
End Sub
使用此类的示例:
WebBrowserUpdater.FixBrowserVersion()
或者指定应用程序名称:
WebBrowserUpdater.FixBrowserVersion("AppName")
或者指定应用程序名称和IE版本:
WebBrowserUpdater.FixBrowserVersion("AppName", IEVer)
请记住,IEVer必须是之前向展示的允许值之一。
最后但并非最不重要的一点是,由于设置了注册表值,为了避免任何错误,需要有提升的权限才能应用更改。将以下内容添加到应用程序清单中:
<requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>