2012-04-19 7 views
6

Buduję oprogramowanie wymagające składnika WebBrowser. Niestety strona nie wyświetli się poprawnie.Składnik WebBrowser nie wyświetlający CSS 3

Moja zawartość wykorzystuje ten styl 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; 
} 

Odkąd dowiedziałem się już komponent WebBrowser wykorzystuje zainstalowaną wersję interwebs Explorer, sprawdziłem html w programie Internet Explorer, i to widać doskonale.

Tu zobaczysz co to widać na IE:

enter image description here

A oto jak to wyświetla na komponencie WebBrowser:

enter image description here

Więc sprawdziłem wersję przeglądarki:

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

I tak powinno być dobrze.

+0

Proszę nie prefiks tytuły z "C#" i takie tam. Po to są te tagi. –

+0

OKay, przepraszam pierwsze pytanie – RoXaS

Odpowiedz

9

tylko dla dalszego odniesienia do innych osób potrzebujących tego:

Przede wszystko: Dzięki Boo & Lex Li Za pomoc w znalezieniu odpowiedzi r na moje pytanie.

Musisz ustawić pewną rejestru do prawej wartość:

Istnieją dwa różne zestawy kluczy dla 32- i 64-bitowych aplikacji.

32 bit:

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

Value Key: yourapplication.exe 

64 bit:

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

Value Key: yourapplication.exe 

Wartość ustawić ten klucz jest (zaczerpnięte z MSDN tutaj) jako wartości dziesiętnych:

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. 

Nawet trudne MSDn twierdzi, że 9000 jest automatycznie przypisaną wartością. Apperently to po prostu nie jest prawdą.

Poniżej znajduje się kod sposobu dodawania kluczy do rejestru. Proszę nie pamiętać, że podczas debugowania aplikacja ma inną nazwę procesu.

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); 
     } 

Więc dziękuję wszystkim and Good Luck

Edit: User Account Control powinien być wyłączony, aby tę pracę kodu.

11

This page opisuje, jak zmusić kontrolkę przeglądarki do używania określonego trybu renderowania.

Można również spróbować tego doctype

<!DOCTYPE html> 

i/lub ten meta element w elemencie head

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

Dziękuję za odpowiedź, tylko jedną rzecz, której nie dostaję. "Domyślna wartość przeglądarki Internet Explorer 9 to 9000." "Opis: \t Internet Explorer 9. Strony internetowe zawierające dyrektywy oparte na standardach! Dyrektywy DOCTYPE są wyświetlane w trybie IE9." Wydaje mi się, że jest to dla mnie odpowiednia wartość, czy też myślisz inaczej? – RoXaS

+0

Czy Twoja strona definiuje typ dokumentu? –

+0

Tak: RoXaS

0

możesz również dodać nagłówek odpowiedzi do aplikacji IIS. Nazwa ta jest zgodna z X-UA z wartością IE = Edge. I mają tendencję, aby dodać go do mojego web.config

+0

Dzięki za odpowiedź, ale obawiam się, że jest to zgłoszenie aplikacji formularzy systemu Windows. Nie ma pliku web.config. – RoXaS

Powiązane problemy