2012-04-19 18 views
6

Estoy creando un programa que requiere un componente WebBrowser. Desafortunadamente no mostrará mi página correctamente.Componente WebBrowser que no muestra CSS 3

Mi contenido utiliza este estilo CSS:

.content_mid{ 
background-image:url(http://img.awesome-o.net/Content_Mid.png); 
background-size: 100% 100%; 
vertical-align:text-top; 
padding-left: 40px; 
padding-right:20px; 
min-height:400px; 
} 

Puesto que ya descubrí el componente WebBrowser utiliza la versión instalada del explorador interwebs, he comprobado el código HTML en Internet Explorer, y se nota perfectamente.

Aquí se ve lo que se muestra en IE:

enter image description here

Y aquí es cómo se muestra en el componente navegador web:

enter image description here

Por lo tanto, he comprobado la versión del navegador:

Debug.WriteLine("WebBrowser version: " + webBrowser1.Version); 
output: WebBrowser version: 9.0.8112.16443 

Así que debería estar bien, supongo.

+0

Por favor, no anteponer sus títulos con "C#" y tal. Para eso son las etiquetas. –

+0

Bien, lo siento, primera pregunta – RoXaS

Respuesta

9

Sólo por referencia adicional a otras personas que necesitan este:

primer todos: Gracias a Boo & Lex Li Por ayudarme a encontrar el answe r a mi pregunta.

usted tiene que fijar un determinado registro en el valor correcto:

Hay dos conjuntos diferentes de las claves para aplicaciones de 32 bits y 64 bits.

32 bits:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION 

Value Key: yourapplication.exe 

64 bits:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION 

Value Key: yourapplication.exe 

El valor para configurar esta tecla para se (tomado de MSDN aquí) como valores decimales:

9999 (0x270F) 
Internet Explorer 9. Webpages are displayed in IE9 Standards mode, regardless of the !DOCTYPE directive. 

9000 (0x2328) 
Internet Explorer 9. Webpages containing standards-based !DOCTYPE directives are displayed in IE9 mode. 

8888 (0x22B8) 
Webpages are displayed in IE8 Standards mode, regardless of the !DOCTYPE directive. 

8000 (0x1F40) 
Webpages containing standards-based !DOCTYPE directives are displayed in IE8 mode. 

7000 (0x1B58) 
Webpages containing standards-based !DOCTYPE directives are displayed in IE7 Standards mode. 

Incluso MSDn exigente afirma que 9000 es el valor asignado automáticamente. Aparentemente esto simplemente no es verdad.

A continuación puede encontrar el código de cómo agregar estas claves a su registro. Tenga en cuenta que su aplicación tiene un nombre de proceso diferente cuando depura.

RegistryKey key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION", true); 
     if (key != null) 
     { 
      key.SetValue("YourApplicationName.exe", 9000, RegistryValueKind.DWord); 
     } 

     key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION", true); 
     if (key != null) 
     { 
      key.SetValue("YourApplicationName.exe", 9000, RegistryValueKind.DWord); 
     } 

Así que gracias a todos y buena suerte

Editar: Control de cuentas de usuario debe estar apagado para hacer este trabajo código.

11

This page describe cómo forzar el control del navegador para usar un modo de renderizado específico.

También puede probar este tipo de documento

<!DOCTYPE html> 

Y/O este elemento meta en el elemento de cabeza

<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 
+0

Gracias por su respuesta, solo una cosa que no consigo. "El valor predeterminado para Internet Explorer 9 es 9000". "Descripción: \t Internet Explorer 9. Las páginas web que contienen directivas! DOCTYPE basadas en estándares se muestran en modo IE9". Ese parece el valor correcto para mí, ¿o piensas diferente? – RoXaS

+0

¿Su página define un doctype? –

+0

Sí lo hace: RoXaS

0

también puede agregar un encabezado de respuesta a la aplicación IIS Llamado X-UA-Compatible con un valor de IE = Edge. Tiendo para añadirlo a mi web.config

+0

Gracias por la respuesta, pero me temo que esto es una aplicación de formularios de Windows. No hay web.config. – RoXaS

Cuestiones relacionadas