[英]Selectively hiding series in a C# chart
假设我有一张图表,上面有 2 个系列。 然后对于每个系列,我都有一个复选框来说明我是否想看它们。 假设我最初绘制了两个,后来想隐藏其中一个。 做这个的最好方式是什么?
我知道我可以Clear()
它然后AddXY()
它们回来,但是有没有更快的方法来做到这一点?
我的尝试想法:
1. 根据复选框将可见性属性设置为真/假。
没有可见性属性
2. 将 Points Collection 复制到变量中,清除并放回。
Series[].Points
是只读的
3. 将 Series 复制到一个变量,清除点,然后放回。
显然,当我尝试这样做时,它将系列存储为参考,但我找不到复制命令。
所以我显然以错误的方式解决这个问题。 您将如何动态地允许图表隐藏不同的系列?
要隐藏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
您可以稍后重置为Color.Empty以恢复默认颜色。
这里唯一的缺点是,除非隐藏系列中的最后一项,否则其他线将重新着色
form.chart1.Legends.Clear();
//隐藏图例中的系列也可以:
form.chart1.Series["0"].IsVisibleInLegend = false;
//禁用图例:
form.chart1.Legends[0].Enabled = false;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.