如果没有结果,请在图表区域插入标签

时间:2018-08-09 22:13:23

标签: c# winforms charts

我正在使用C#Windows Forms Charts,我想知道当图表中没有任何结果时,是否有可能在图表区域中显示一个大标签,表示“无结果”。

1 个答案:

答案 0 :(得分:1)

这将添加文本注释。每次添加/删除/绑定点时都需要调用它。

void testEmpty(Chart chart)
{
    bool empty = true;
    foreach (var s in chart.Series)
    {
        if (s.Points.Any(x => !x.IsEmpty)) {empty = false; break; }
    }
    if (chart.Annotations.Contains(chart.Annotations["Empty"]))
        chart.Annotations.Remove(chart.Annotations["Empty"]);
    if (empty)
    {
        TextAnnotation ta = new TextAnnotation();
        ta.Name = "Empty";
        ta.X = 30;
        ta.Y = 45;
        ta.Text = "No Data!";
        ta.Font = new Font(Font.FontFamily, 30f);
        chart.Annotations.Add(ta);
    }
}

您可以玩数字游戏; (50,50)会将top.left放置在图表的中心(而非图表区域)。

注意:要显示ChartArea及其轴,您仍然需要添加一个虚拟点;如果需要,将其设置为Empty

chart.Series.First().Points.Add(new DataPoint() { IsEmpty = true });