2

Я использую WebBrowser управления в WPF приложения для визуализации Open Street Maps (OSM) использованием Ol3 (openlayers3). Он отлично работает в браузере IE11, но события мыши не работают во встроенном IE11 WebBrowser Control. Если я сделаю свой WebBrowser для эмуляции IE10, события мыши будут запущены, но 3D-просмотр (Цезий) не будет работать.OL3 с Embedded IE11 управления WebBrowser (WPF), мыши события не работает

В качестве примера я использую http://openlayers.org/ol3-cesium/examples/main.html. Я размещаю его локально на сервере python и передавая его в элемент управления WebBrowser. Чтобы запустить WebGL и цезий я модифицировал FEATURE_BROWSER_EMULATION ключ к 11000 и FEATURE_GPU_RENDERING ключ 1 моего .exe

Я хочу использовать IE11 как мне нужно, чтобы сделать 3d вид глобуса карты с помощью ol3- Цезий. Все события щелчка мыши отлично работают в режиме 3D-глобуса, но когда я отключу 3D-просмотр и включите просмотр 2d, события мыши не срабатывают. Я не уверен, что мне не хватает некоторых изменений в реестре.

Я также следовал ol3 with IE11 in a c# webbrowser control mouse click events not working, но я не удовлетворен ответом. Рекомендуется использовать Chromium, поскольку несколько событий не работают с IE11. Но если 3D-глобус позволяет событиям срабатывать, то почему бы не 2d в ol3. Пожалуйста помоги.

ответ

1

В реестре, включите FEATURE_GPU_RENDERING и выключить режим совместимости, установив FEATURE_BROWSER_EMULATION 0.

Этот код работал для меня. Большинство полученных мной ответов предложили установить FEATURE_BROWSER_EMULATION на последнюю версию IE на вашей машине, но никогда не работали с цезием. Установка его на 0, т. Е. Отключение режима совместимости, работало.

internal static void SetBrowserFeaturesToSupportGpu() 
      { 
      // FeatureControl settings are per-process 
      var fileName = System.IO.Path.GetFileName(Process.GetCurrentProcess().MainModule.FileName); 
      SetBrowserFeatureControlKey(
      "FEATURE_96DPI_PIXEL", 
      fileName, 
      1) 
      ; // enable hi-dpi support 
      SetBrowserFeatureControlKey(
      "FEATURE_BROWSER_EMULATION", 
      fileName, 
      00000) 
      ; // turn off compatibility mode. 
      SetBrowserFeatureControlKey(
      "FEATURE_AJAX_CONNECTIONEVENTS", 
      fileName, 
      1) 
      ; 
      SetBrowserFeatureControlKey(
      "FEATURE_ENABLE_CLIPCHILDREN_OPTIMIZATION", 
      fileName, 
      1) 
      ; 
      SetBrowserFeatureControlKey(
      "FEATURE_GPU_RENDERING", 
      fileName, 
      1) 
      ; // use GPU rendering 
      SetBrowserFeatureControlKey(
      "FEATURE_IVIEWOBJECTDRAW_DMLT9_WITH_GDI ", 
      fileName, 
      0) 
      ; // force directX 
      SetBrowserFeatureControlKey(
      "FEATURE_NINPUT_LEGACYMODE", 
      fileName, 
      0) 
      ; 
      SetBrowserFeatureControlKey(
      "FEATURE_DISABLE_NAVIGATION_SOUNDS", 
      fileName, 
      1) 
      ; 
      SetBrowserFeatureControlKey(
      "FEATURE_SCRIPTURL_MITIGATION", 
      fileName, 
      1) 
      ; 
      SetBrowserFeatureControlKey(
      "FEATURE_SPELLCHECKING", 
      fileName, 
      0) 
      ; 
      SetBrowserFeatureControlKey(
      "FEATURE_STATUS_BAR_THROTTLING", 
      fileName, 
      1) 
      ; 
      SetBrowserFeatureControlKey(
      "FEATURE_VALIDATE_NAVIGATE_URL", 
      fileName, 
      1) 
      ; 
      SetBrowserFeatureControlKey(
      "FEATURE_WEBOC_DOCUMENT_ZOOM", 
      fileName, 
      1) 
      ; // allow zoom. 
      SetBrowserFeatureControlKey(
      "FEATURE_WEBOC_POPUPMANAGEMENT", 
      fileName, 
      0) 
      ; // disallow auto-popups 
      SetBrowserFeatureControlKey(
      "FEATURE_ADDON_MANAGEMENT", 
      fileName, 
      0) 
      ; // disallow auto-addons/plugins 
      SetBrowserFeatureControlKey(
      "FEATURE_WEBSOCKET", 
      fileName, 
      1) 
      ; 
      SetBrowserFeatureControlKey(
      "FEATURE_WINDOW_RESTRICTIONS", 
      fileName, 
      0) 
      ; // disallow popups 
      } 


internal static void SetBrowserFeatureControlKey(string feature, string appName, uint value) 
     { 
     using (var key = Registry.CurrentUser.CreateSubKey(
      String.Concat(@"Software\Microsoft\Internet Explorer\Main\FeatureControl\", feature), 
      RegistryKeyPermissionCheck.ReadWriteSubTree)) 
     { 
      key.SetValue(appName, (UInt32) value, RegistryValueKind.DWord); 
     } 
     } 
+0

Управление веб-браузером теперь задувает –