如何在图表中设置系列Z-Order

时间:2014-05-30 22:47:26

标签: c# vb.net charts mschart

我有一个图表控件(System.Windows.Form.DataVisualisation.Charting,因此WinForms)有多个系列,一些分配给主要,一些分配到辅助Y轴。

我需要图表以特定的Z顺序绘制系列(意味着先绘制哪个系列,然后是第二个,依此类推),因为其中一些是重叠的。我无法找到任何相关的财产。

我认为z顺序取决于系列添加到SeriesCollection的顺序,但这似乎不会改变我测试中的任何内容。

我错过了什么吗?

PS:它不是3D图形。所以我只询问不同系列的绘制顺序。

2 个答案:

答案 0 :(得分:4)

系列按照它们放入Chart.Series集合的顺序绘制。因此,您可以使用Insert代替Add自动将新系列发送到后面:

myChart1.Series.Add(myNewSeries1); // Draws this series on top of the others.
myChart1.Series.Insert(0, myNewSeries2); // Draw this series behind the others.

以下内容可以转换为图表控件的扩展方法,然后(以及其他方法,例如Br​​ingToFront)可用于设置系列的顺序。

public void SendToBack(Series s)
{
    if (myChart1.Series.Contains(s))
    {
        myChart1.Series.Remove(s);
        myChart1.Series.Insert(0, s);
    }
}

答案 1 :(得分:3)

系列按照添加到Chart.Series集合的顺序绘制。添加您想要在顶部绘制的那个作为集合中的最后一个元素。