【问题标题】:WPF WebBrowser Browser VersionWPF WebBrowser 浏览器版本
【发布时间】:2012-05-11 06:45:54
【问题描述】:

WPF WebBrowser 控件是否依赖于安装在用户机器上的 IE 版本,还是使用跨机器一致的单独库?我读过它只在 IE7 模式下呈现,但我想确保没有安装 IE 或由于某种原因仍在使用 IE6 的用户不会有任何问题。

【问题讨论】:

    标签: .net wpf browser webbrowser-control


    【解决方案1】:

    MSDN remarks for WebBrowser 表示它重新托管 IE ActiveX 控件:

    WebBrowser 控件在内部实例化本机 WebBrowser ActiveX 控件。

    WebBrowser ActiveX 控件更广为人知的是Shdocvw.dll。这反过来包装Mshtml.dll,可能还有其他DLL 给您的环境。 One caveat of rehosting this control is its setting for Browser Emulation:

    对于托管 WebBrowser 控件的应用程序,默认值为 7000。要使用注册表控制此功能的值,请将可执行文件的名称添加到以下设置中,并将值设置为与所需设置相匹配。

    0x7000 表示 IE7 兼容模式。因此,如果您希望 WPF 应用程序使用其他模式呈现,则需要更新注册表,如 adapted from this example:

    [HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION] 
    "MyApplication.exe" = dword:2328
    

    【讨论】:

    【解决方案2】:

    我在一台装有 IE11 的机器上创建了一个带有 WebBrowser 控件的 WPF 应用程序,并得到了这个用户代理字符串:

    user agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; InfoPath.3; .NET CLR 1.1.4322)
    

    我在一台装有 IE10 的机器上创建了一个带有 WebBrowser 控件的 WPF 应用程序,并得到了这个用户代理字符串:

    user agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/6.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E)
    

    Trident/7.0 表示 IE11,Trident/6.0 表示 IE10。 More about user-agent strings.

    使用 IE10 的系统的页面呈现方式也与使用 IE11 的系统不同。我还使用每个系统上的独立 IE 浏览器验证了这一点。

    我还没有在没有IE的系统或运行IE6的系统上尝试过,但是WebBrowser控件似乎与系统上当前安装的IE版本有关。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-14
      • 2017-01-01
      • 2012-06-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多