日期:2014-05-17  浏览次数:21017 次

C#浏览器控件绘图
我最近做了一个程序需要用C#浏览器控件上载入一副底图,让C#通过JS代码与html进行交互,再在地图上绘图,比如直线,矩形,等。
由于我本人对JS不太熟悉,了解到绘图可以使用canvas
我写了一点代码,在浏览器中可以正常运行,IE或是chrome都正常
但在C#程序中运行时报错,错误: 对象不支持此属性或方法getContext 
请问这是什么原因
C#浏览器控件是什么版本的IE,是否支持canvas,JS代码是否有误,应该如何修改。
我用的VS2012 .NET 3.5
html代码如下

<!DOCTYPE html>
<html>
  <head>
    <title>Canvas JavaScript </title>
  
  </head>
  <body>
    <canvas id="myCanvas" width="200" height="100"></canvas>
    <script type="text/javascript"> 
    
var c=document.getElementById("myCanvas");
var cxt=c.getContext("2d");
cxt.moveTo(10,10);
cxt.lineTo(150,50);
cxt.lineTo(10,50);
cxt.stroke();

</script>
  </body>
</html>

------解决方案--------------------
根据你提供的信息,IE是什么版本只有你才能知道了。
不过肯定是IE9以下,因为“对象不支持此属性或方法getContext ”意味着这个C#浏览器控件使用的IE内核不支持HTML5的canvas(我猜很有可能是IE6)。
你说的IE或是chrome都正常说明你的IE版本是9或者10,chrome就不用说了
------解决方案--------------------
C#浏览器控件是什么版本的IE取决于你的系统安装的是什么版本的IE。只有支持HTML5的浏览器(IE9以上)才支持canvas。