如何在图表中设置系列Z顺序

Jen*_*ens 4 c# vb.net charts mschart

我有一个具有多个系列的Chart控件(System.Windows.Form.DataVisualisation.Charting,所以是WinForms),有些分配给主要的轴,有些分配给辅助的Y轴。

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

我认为z顺序取决于将系列添加到SeriesCollection的顺序,但这似乎并没有改变我的测试。

我想念什么吗?

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

Ben*_*Ben 6

该系列按它们放入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.
Run Code Online (Sandbox Code Playgroud)

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

public void SendToBack(Series s)
{
    if (myChart1.Series.Contains(s))
    {
        myChart1.Series.Remove(s);
        myChart1.Series.Insert(0, s);
    }
}
Run Code Online (Sandbox Code Playgroud)