在C#图表中选择性地隐藏序列
本文关键字:隐藏 选择性 | 更新日期: 2023-09-27 18:00:23
假设我有一个图表,上面有两个系列。然后,对于每个系列,我都有一个复选框来决定是否要查看它们。假设我最初策划了这两件事,后来又想隐藏其中任何一件。最好的方法是什么?
我知道我可以先Clear()
,然后再AddXY()
,但有更快的方法吗?
我尝试的想法:
1.根据复选框将可见性属性设置为true/false。
没有可见性属性
2.将Points Collection复制到变量,清除并放回。Series[].Points
为只读
3.将系列复制到变量,清除点,然后放回。
显然,当我尝试此操作时,它将系列存储为引用,但我找不到复制命令。
所以我显然走错了路。如何动态地允许图表隐藏不同的系列?
要在MSChart中隐藏序列,请按以下方式使用Enabled
属性:
msChart.Series["Series"].Enabled = false;
并再次显示:
msChart.Series["Series"].Enabled = true;
因此,您不需要删除点并重新添加它们。
还有另一种方法可以在不隐藏图例的情况下做到这一点。
简单地说:
Chart.Series[0].Color = Color.FromArgb(0, 0, 0, 0); //sets color to transparent
您可以重置为"颜色"。稍后清空以恢复默认颜色。
这里唯一的缺点是,除非系列中的最后一项被隐藏,否则其他行将被重新着色
chart1.Legends.Clear();
//Hiding the series from the legend will work too:
chart1.Series["0"].IsVisibleInLegend = false;
//disabling the legend:
chart1.Legends[0].Enabled = false;