2012-05-01 15 views
7

Czy formant WebBrowser w WPF zależy od wersji IE zainstalowanej na komputerze użytkownika, czy też korzysta z oddzielnej biblioteki spójnej na różnych komputerach? Czytałem, że renderuje się tylko w trybie IE7, ale chcę się upewnić, że nie będzie żadnych problemów z użytkownikiem, który nie ma zainstalowanego IE lub nadal jest na IE6 z jakiegoś powodu.Przeglądarka przeglądarek WWW przeglądarki WPF Wersja

Odpowiedz

13

MSDN remarks for WebBrowser wskazują, że rehosts kontroli IE ActiveX:

Kontrola WebBrowser wewnętrznie instancję rodzimą WebBrowser formantu ActiveX.

Formant ActiveX WebBrowser jest lepiej znany jako Shdocvw.dll. To z kolei opakowuje Mshtml.dll i prawdopodobnie inne biblioteki DLL są udostępniane Twojemu środowisku. One caveat of rehosting this control is its setting for Browser Emulation:

Do zastosowań hostingu formantu WebBrowser, wartość domyślna to 7000. Aby kontrolować wartość tej funkcji za pomocą rejestru, dodaj nazwę pliku wykonywalnego do następującego ustawienia i ustaw wartość odpowiadającą żądanemu ustawieniu.

0x7000 oznacza tryb zgodności IE7. Dlatego, jeśli chcesz aplikacji WPF do renderowania za pomocą jakiegoś innego trybu trzeba zaktualizować rejestru, jak adapted from this example:

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

Innym użytecznym źródłem informacji jest [ten post na blogu od Rick'a Strahla, który napotkał problem podczas pracy z jego pomocnikiem do tworzenia html] (http://www.west-wind.com/weblog/posts/2011/May/21/ Web-Browser-Control-Specification-the-IE-Version). – user7116

+0

Pytanie brzmiało: "Czy formant WebBrowser w WPF zależy od wersji IE zainstalowanej w systemie?" W tej odpowiedzi właśnie mówiono o tym, jak emulacja IE7 może być ustawiona lub nadpisana. Co się stanie, jeśli użytkownik nie zainstaluje IE na swoim komputerze lub ma IE6? – ThePersonWithoutC

0

I stworzył aplikację WPF z formantu WebBrowser na maszynie z IE11 i dostał ten ciąg agenta użytkownika:

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) 

i stworzył aplikację WPF z formantu WebBrowser na maszynie z IE10 i dostał ten ciąg agenta użytkownika:

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 oznacza, że ​​IE11 i Trident/6.0 oznaczają IE10. More about user-agent strings.

System z IE10 miał również stronę renderowaną inaczej niż system z IE11. Sprawdziłem to również w niezależnych przeglądarkach IE w każdym systemie.

Nie wypróbowałem jeszcze w systemie BEZ IE lub w systemie z IE6, ale wygląda na to, że kontrola WebBrowser jest związana z wersją IE aktualnie zainstalowanego w systemie.

Powiązane problemy