将WPF webbrowser控件设置为使用IE10模式

时间:2014-05-21 07:39:23

标签: wpf wpf-controls webbrowser-control

如何设置WPF webbrowser控件以在iE10模式下渲染页面或在机器上安装更高版本。 默认情况下,如果我在任何OS机器上创建.net 4或.net 4.5应用程序>在Windows 7中,它仅在IE7模式下呈现html页面。 (如果我错了,请更正) 如果在目标机器上安装IE10,如何启用应用程序以IE10模式呈现html页面?任何帮助

3 个答案:

答案 0 :(得分:19)

如果您不想修改注册表并控制网页,可以使用

<meta http-equiv="X-UA-Compatible" content="IE=10">
文件头部的

标签。我认为必须首先或紧跟<title>才能工作。

答案 1 :(得分:7)

您可以按照此处所述使用注册表:

http://msdn.microsoft.com/en-us/library/ie/ee330730%28v=vs.85%29.aspx

编辑: 为了更好的解释,你也可以阅读这个答案 Will the IE9 WebBrowser Control Support all of IE9's features, including SVG?

答案 2 :(得分:4)

对于WPF webbrowser控件使用IE11模式需要,例如,在主窗口的构造函数中,添加以下代码:

var pricipal = new System.Security.Principal.WindowsPrincipal(
  System.Security.Principal.WindowsIdentity.GetCurrent());
if(pricipal.IsInRole(System.Security.Principal.WindowsBuiltInRole.Administrator)) {
    RegistryKey registrybrowser = Registry.LocalMachine.OpenSubKey
        (@"Software\\Microsoft\\Internet Explorer\\Main\\FeatureControl\\FEATURE_BROWSER_EMULATION", true);
    string myProgramName = Path.GetFileName(System.Reflection.Assembly.GetExecutingAssembly().Location);
    var currentValue = registrybrowser.GetValue(myProgramName);
    if (currentValue == null || (int)currentValue != 0x00002af9)
        registrybrowser.SetValue(myProgramName, 0x00002af9, RegistryValueKind.DWord);
}
else
    this.Title += " ( Первый раз запускать с правами админа )";

如果你想在Visual Studio中运行时看到WPF webbrowser控件在DEBUG模式下使用IE11模式,你需要在注册表中添加所有progmam“*”。这可以使用以下代码完成:

var pricipal = new System.Security.Principal.WindowsPrincipal(
    System.Security.Principal.WindowsIdentity.GetCurrent());
if (pricipal.IsInRole(System.Security.Principal.WindowsBuiltInRole.Administrator)) {
    RegistryKey registrybrowser = Registry.LocalMachine.OpenSubKey
    (@"Software\\Microsoft\\Internet Explorer\\Main\\FeatureControl\\FEATURE_BROWSER_EMULATION", true);
    var currentValue = registrybrowser.GetValue("*");
    if (currentValue == null || (int)currentValue != 0x00002af9)
        registrybrowser.SetValue("*", 0x00002af9, RegistryValueKind.DWord);
}
else
    this.Title += " ( Первый раз запускать с правами админа )";

检查了Windows 10和visual studio 2015。

备注:编码其他版本的Internet Explorer,请参阅此处https://msdn.microsoft.com/en-us/library/ee330730(v=vs.85).aspx#browser_emulation