OpenLayers 3旋转示例在Win32触摸设备上的IE/Chrome嵌入式WebBrowser控件中表现不同

本文关键字:WebBrowser 嵌入式 Chrome 控件 IE 旋转 Win32 触摸 OpenLayers | 更新日期: 2023-09-27 18:08:18

我试图在我的wpf应用程序中使用OpenLayers 3(ol3)实现开放街道地图(OSM)上的旋转,使用以下示例

http://openlayers.org/en/v3.5.0/examples/rotation.html

当我使用IE/Chrome浏览器直接打开上述html文件时,当我在Win32触摸设备(windows 8平板电脑)上执行旋转时,地图旋转绝对很好,但是当我在wpf应用程序的WebBrowser控件中打开相同的html文件时,旋转只有当我在屏幕键盘上启用Shift+Alt时才能工作。

我目前使用的是Internet Explorer 10,我还添加了下面的标签,以便我的WebBrowser控件也模拟IE 10。

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

我无法理解为什么旋转功能与普通浏览器和WebBrowser控件不同。我错过什么了吗?

请帮助! !

OpenLayers 3旋转示例在Win32触摸设备上的IE/Chrome嵌入式WebBrowser控件中表现不同

终于!!我的问题有了突破。旋转行为的差异是IE web浏览器控件中的遗留输入模型问题。

FEATURE_NINPUT_LEGACYMODE特性控件决定是否启用遗留输入模型。默认情况下,该功能在Internet Explorer中禁用,在托管WebBrowser控件的应用程序中启用。要使用注册表禁用此功能,请将可执行文件的名称添加到以下设置中。

HKEY_LOCAL_MACHINE (or HKEY_CURRENT_USER)
   SOFTWARE
      Microsoft
         Internet Explorer
            Main
               FeatureControl
                  FEATURE_NINPUT_LEGACYMODE
                     contoso.exe = (DWORD) 00000000

设置为(DWORD) 00000001时启用该特性,设置为(DWORD) 00000000时禁用该特性。

因此禁用DWORD值解决了我的问题。