所以这是另一个关于在WinFormsWebControl中有效渲染google地图的问题。
有两种解决方案,一种是添加特定的注册表项(See this article),另一种是使用<meta http-equiv="X-UA-Compatible" content="IE=edge">(如果您拥有所显示页面的HTML)。
由于我们在自己的服务器上托管google-mapshtml和脚本文件,因此可以修改html文件。因此,我们已经尝试了,但是这会导致WebControl根本无法呈现html文件(显示灰色空间)。另一方面,IE运行良好。
我们测试的工作站已经安装了IE 11。
下面是我们的html文件。我们做错什么了吗?有人遇到过类似的行为吗?如何解决这个问题?

<?xml version="1.0" encoding="UTF-8" ?>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml">
<head>
    <meta http-equiv="X-UA-Compatible" content="IE=8"/>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta name="robots" content="noindex" />
    <title>Mapa</title>
    <script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?v=3.22&libraries=geometry&sensor=false"></script>
    <!-- multiple javascript files -->
    <script type="text/javascript">
        var map;
        var panorama;

        function initialize() {
            var myOptions = {
                zoom: 6,
                center: new google.maps.LatLng(0.0, 0.0),
                mapTypeId: google.maps.MapTypeId.ROADMAP
            };
            map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
            panorama = map.getStreetView();
            /* some init functions */
        }

    </script>
</head>
<body style="margin: 0px 0px 0px 0px; padding: 0px 0px 0px 0px;" onload="initialize()">
    <div id="map_canvas" style="width: 100%; height: 100%">
    </div>
</body>
</html>

对不起,<!-- multiple javascript files -->/* some init functions */但是我不得不把这些部分剪掉。这只是<script type="text/javascript" src="..."></script>行和第二个函数调用。如果这两个部分真的很重要并且能解决问题,我可以试着把它们贴出来。。不知怎么的。
请注意,无论我们在content="IE=edge"部分、edge或任何其他版本号中使用什么,结果都是相同的。
下面是使用WebControlX-UA-Compatible的屏幕。
(显然,红色文本是用剪贴工具制作的;)
See this article

最佳答案

我与创建另一个浏览器组件的团队一起工作–DotNetBrowser
我认为这个组件将有助于您的情况,因为它是基于Chromium引擎,应该呈现谷歌地图没有任何问题。

关于c# - Winforms,WebControl,Google Maps和无效渲染,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37520590/

10-09 16:20