Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WPF web浏览器控件中的OL3铯_C#_Wpf_Webbrowser Control_Openlayers 3_Cesium - Fatal编程技术网

C# WPF web浏览器控件中的OL3铯

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仿真以

我想使用OL3铯在我的WPF应用程序中使用
WebBrowser
控件显示全局视图。 示例html文件在我的IE 11浏览器中运行良好,但如果我通过
WebBrowser
控件运行同一个文件,则会在Cesium.js中显示一个错误,即“浏览器支持WebGL,但初始化失败”

我通过在注册表中编辑本地机器中的键,使我的WPF应用程序与IE11兼容,但它仍然不起作用。
请帮我找到一些解决方案。

您提到让
WebBrowser
更像使用注册表项的IE11,但您可能需要不止一个。特别是:

  • 需要
    功能\u浏览器\u仿真
    以获得IE11兼容性并访问其提供的WebGL API
  • 在嵌入式窗口中启用硬件加速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)