Версия браузера WebBrowser WPF

зависит ли элемент управления WPF WebBrowser от версии IE, установленной на компьютере пользователя, или он использует отдельную библиотеку, согласованную между машинами? Я читал, что он отображается только в режиме IE7, но я хочу убедиться, что не будет никаких проблем с пользователем, который либо не установлен IE, либо по какой-то причине все еще находится на IE6.

2 ответов


на MSDN примечания для WebBrowser указать rehosts управления, т. е. элементы ActiveX:

элемент управления WebBrowser создает экземпляр собственного элемента управления ActiveX WebBrowser.

элемент управления ActiveX WebBrowser более известен как Shdocvw.dll. Это, в свою очередь, заворачивает Mshtml.dll, и, вероятно, другие DLL дали вашу среду. одним из предостережений от повторного размещения этого элемента управления является его настройка для эмуляции браузера:

для приложений, размещающих элемент управления WebBrowser, значение по умолчанию 7000. Чтобы управлять значением этой функции с помощью реестра, добавьте имя исполняемого файла в следующий параметр и задайте значение, соответствующее нужному параметру.

0x7000 означает режим совместимости IE7. Поэтому, если вы хотите, чтобы ваше приложение WPF отображалось в другом режиме, вам необходимо обновить реестр, как адаптировано из этого пример:

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

Я создал приложение WPF с элементом управления WebBrowser на машине с IE11 и получил эту строку агента пользователя:

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)

Я создал приложение WPF с элементом управления WebBrowser на машине с IE10 и получил эту строку агента пользователя:

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. подробнее о строках user-agent.

система с IE10 также имела рендеринг страницы иначе, чем система с IE11. Я также проверил это с автономными браузерами IE в каждой системе.

Я еще не пробовал его в системе без IE или системы под управлением IE6, но кажется, что управление WebBrowser связано с версией IE, установленной в настоящее время в системе.