在MS Chart上的缩放视图上获取点

时间:2015-04-23 11:34:31

标签: c# .net charts zoom

我正在使用Microsoft Chart控件并允许用户选择。 我希望能够在用户选择要缩放的区域后获取当前缩放(查看)区域的数据点。关于如何做到这一点的任何想法?我正在使用.Net 4.5。

1 个答案:

答案 0 :(得分:1)

以下示例将当前可见的DataPoints发送到控制台输出:

// two shortcuts
ChartArea CA = chart1.ChartAreas[0];
Series S = chart1.Series[0];

// these are the X-Values of the zoomed portion:
double min = CA.AxisX.ScaleView.ViewMinimum;
double max = CA.AxisX.ScaleView.ViewMaximum;

// these are the respective DataPoints:
    DataPoint pt0 = S.Points.Select(x => x)
                     .Where(x => x.XValue >= min)
                     .DefaultIfEmpty(S.Points.First()).First();
    DataPoint pt1 = S.Points.Select(x => x)
                     .Where(x => x.XValue <= max)
                     .DefaultIfEmpty(S.Points.Last()).Last();

// test output:
for (int i = S.Points.IndexOf(pt0); i < S.Points.IndexOf(pt1); i++)
    Console.WriteLine(i + " :  " + S.Points[i]);

您可以将其置于SelectionRangeChanged事件中。