我的目标:返回坐标和形状,以便我可以将自己的自定义悬停文本滚动到.NET Charting图像。如果我使用ASP.NET控件(它同时呈现图像标记和HTML <map>
标记,这将没有问题;但是,我在MVC世界中,所以我将图表作为二进制文件返回图片。这是要点:
public virtual FileStreamResult Chart()
{
//Set up chart
Chart Chart1 = new Chart();
Chart1.RenderType = RenderType.ImageTag;
Chart1.ChartAreas.Add(new ChartArea("First"));
//Add some lovely data
Series s = new Series();
s.Name = "Tasks";
s.Points.AddXY("Task 1", 5, 8);
s.ChartArea = "First";
s.ChartType = SeriesChartType.RangeBar;
//Add a tooltip - This **should** make the MapAreas collection populate.
s.ToolTip = "Hello World";
Chart1.Series.Add(s);
if (Chart1.MapAreas.Count == 0)
CryRiver(); //Always executed. :*(
//Output image as FileStreamResult
//...
}
问题:无论我做什么,我都无法让MapAreas
集合包含任何内容。我相信这是因为在图像实际渲染之前,坐标不会被填充。
在将图像渲染为二进制文件时,如何获取图表数据的地图区域坐标?
谢谢!
答案 0 :(得分:0)
找到答案;不确定它是否是最好的。
必须在填充Chart1.MapAreas之前调用Chart1.RenderControl();
。