ASP.NET图表-将图表作为二进制数据返回时,MapAreas为null

本文关键字:数据 二进制 返回 null MapAreas 图表 NET ASP | 更新日期: 2023-09-27 17:59:31

我的目标:返回坐标和形状,以便我可以将自己的自定义悬停文本滚动到.NET图表图像中。如果我使用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集合包含任何内容。我相信这是因为在图像真正渲染之前,坐标不会被填充。

当将图像渲染为二进制时,如何获取图表数据的地图区域坐标?

谢谢!

ASP.NET图表-将图表作为二进制数据返回时,MapAreas为null

找到答案;不确定它是否是最好的。

必须先调用Chart1.RenderControl();,然后才能填充Chart1.MapArea。