我试图在允许用户交互(悬停,单击)的我的web应用程序中创建一个饼图。饼图使用图表帮助程序的Web表单版本呈现良好。但图像映射总是空:来自C#System.Web.UI.DataVisualization.Charting.Chart帮助器的图像映射
List<string> items = new List<string>(new string[] {"what", "is", "wrong"});
List<decimal> values = new List<decimal>(new decimal[] { 1, 2, 3 });
Chart myChart = new Chart();
myChart.ChartAreas.Add(new ChartArea());
myChart.Series.Add(new Series("Data") { ChartType = SeriesChartType.Pie });
myChart.Series["Data"].Points.DataBindXY(items, values);
using (MemoryStream stream = new MemoryStream())
{
myChart.SaveImage(stream, ChartImageFormat.Jpeg);
string result = "<img usemap='#myMap' src='" + String.Format("data:image/jpeg;base64,{0}", Convert.ToBase64String(stream.ToArray())) + "' />";
return result + myChart.GetHtmlImageMap("myMap");
}
产生的图像地图:
<map name="myMap" id="myMap">
<area shape="rect" coords="0,0,0,0" alt="">
</map>
的MS documentation包括这个哦,所以,有用的警告:“如果你渲染图作为二进制流,一个特殊的技术必须用于实现客户端图像映射。“
我错过了什么? MS显然希望保守秘密的“特殊技术”是什么?
您是否按照建议[这里](https://msdn.microsoft.com/zh-cn/library/system.web.ui.datavisualization.charting)向'MapAreas'集合添加了'MapArea'。 chart.ismapenabled%28v = vs.110%29.aspx)?更多提示[此处](https://msdn.microsoft.com/zh-CN/library/system.web.ui.datavisualization.charting.chart.rendertype%28v=vs.110%29.aspx?f=255&MSPPError= -2147217396) – TaW
不错!想要添加为解决方案,以便获得积分?最重要的部分是获取MapArea,如果您在数据点上设置了Tooltip或MapAreaAttributes,则会自动发生。 – loopylou