2012-05-01 18 views
7

¿El control WPF WebBrowser depende de la versión de IE que está instalada en la máquina del usuario, o utiliza una biblioteca separada que es coherente en todas las máquinas? He leído que solo se procesa en modo IE7, pero quiero asegurarme de que no haya ningún problema con un usuario que no tenga IE instalado o que todavía esté en IE6 por algún motivo.WPF WebBrowser Browser Version

Respuesta

13

El MSDN remarks for WebBrowser indican que rehosts el control ActiveX de IE:

El control WebBrowser una instancia interna del WebBrowser ActiveX control nativo.

El control WebBrowser ActiveX es mejor conocido como Shdocvw.dll. Esto a su vez se ajusta a Mshtml.dll, y probablemente a otras DLL dadas en su entorno. One caveat of rehosting this control is its setting for Browser Emulation:

Para aplicaciones que aloja el control WebBrowser, el valor predeterminado es 7000. Para controlar el valor de esta característica mediante el registro, agregue el nombre de su archivo ejecutable a la siguiente configuración y establezca el valor para que coincida con la configuración deseada.

0x7000 significa modo de compatibilidad IE7. Por lo tanto, si desea que su aplicación de WPF para hacer uso de algún otro modo es necesario actualizar el registro, como adapted from this example:

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

Otro recurso útil es [esta publicación del blog de Rick Strahl cuando se enfrentó al problema cuando trabajaba con su Html Help Builder] (http://www.west-wind.com/weblog/posts/2011/May/21/ Web-Browser-Control-Specifying-the-IE-Version). – user7116

+0

La pregunta era, "¿El WPF WebBrowser Control depende de la versión de IE instalada en el sistema?" Esta respuesta acaba de hablar sobre cómo se puede establecer o anular la emulación IE7. ¿Qué sucede si un usuario no tiene IE instalado en su máquina o tiene IE6? – ThePersonWithoutC

0

he creado una aplicación WPF con un control WebBrowser en una máquina con IE11 y tiene esta cadena de agente de usuario:

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) 

he creado una aplicación WPF con un control WebBrowser en una máquina con IE10 y consiguió esta cadena de agente de usuario:

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 indica IE11 y Trident/6.0 indica IE10. More about user-agent strings.

El sistema con IE10 también hizo que la página se procesara de forma diferente que el sistema con IE11. También verifiqué esto con los navegadores IE independientes en cada sistema.

Todavía tengo que probarlo en un sistema SIN IE o un sistema que ejecute IE6, pero parece que el control WebBrowser está relacionado con la versión de IE actualmente instalada en el sistema.