C# WPF web浏览器控件中的OL3铯
我想使用OL3铯在我的WPF应用程序中使用C# WPF web浏览器控件中的OL3铯,c#,wpf,webbrowser-control,openlayers-3,cesium,C#,Wpf,Webbrowser Control,Openlayers 3,Cesium,我想使用OL3铯在我的WPF应用程序中使用WebBrowser控件显示全局视图。 示例html文件在我的IE 11浏览器中运行良好,但如果我通过WebBrowser控件运行同一个文件,则会在Cesium.js中显示一个错误,即“浏览器支持WebGL,但初始化失败” 我通过在注册表中编辑本地机器中的键,使我的WPF应用程序与IE11兼容,但它仍然不起作用。 请帮我找到一些解决方案。您提到让WebBrowser更像使用注册表项的IE11,但您可能需要不止一个。特别是: 需要功能\u浏览器\u仿真以
WebBrowser
控件显示全局视图。
示例html文件在我的IE 11浏览器中运行良好,但如果我通过WebBrowser
控件运行同一个文件,则会在Cesium.js中显示一个错误,即“浏览器支持WebGL,但初始化失败”
我通过在注册表中编辑本地机器中的键,使我的WPF应用程序与IE11兼容,但它仍然不起作用。
请帮我找到一些解决方案。您提到让
WebBrowser
更像使用注册表项的IE11,但您可能需要不止一个。特别是:
- 需要
以获得IE11兼容性并访问其提供的WebGL API功能\u浏览器\u仿真
- 在嵌入式窗口中启用硬件加速3D需要使用
功能\U GPU\U渲染
failIfMajorPerformanceCaveat
,这意味着如果GPU渲染不可用,铯宁愿失败,也不愿尝试使用软件渲染运行。这可以被覆盖,但是结果是不好的,所以请使用GPU注册表项
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION
"MyApplication.exe" : REG_DWORD = 11
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_GPU_RENDERING
"MyApplication.exe" : REG_DWORD = 1
下面是一篇很好的文章,介绍了如何使用这些注册表项和嵌入WebGL应用程序:
我也有同样的问题。几乎所有建议的解决方案都涉及将
功能\u浏览器\u仿真
设置为当前安装的IE版本,但Cesium仍会返回错误浏览器支持WebGL,但初始化失败
有效的方法是完全关闭兼容模式
SetBrowserFeatureControlKey(
"FEATURE_BROWSER_EMULATION",
fileName,
00000)
当然,仍然打开FEATURE\GPU\U渲染
SetBrowserFeatureControlKey(
"FEATURE_GPU_RENDERING",
fileName,
1)