我正在使用C#Windows Forms Charts,我想知道当图表中没有任何结果时,是否有可能在图表区域中显示一个大标签,表示“无结果”。
答案 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 });