C# 在MS图表上的缩放视图上获取点

C# 在MS图表上的缩放视图上获取点,c#,.net,charts,zooming,C#,.net,Charts,Zooming,我正在使用Microsoft图表控件并允许用户选择。 一旦用户选择要缩放的区域,我希望能够获得当前缩放(查看)区域的数据点。关于如何做到这一点有什么想法吗?我正在使用.Net 4.5。下面是一个示例,它将当前可见的数据点发送到控制台输出: // two shortcuts ChartArea CA = chart1.ChartAreas[0]; Series S = chart1.Series[0]; // these are the X-Values of the zoomed portio

我正在使用Microsoft图表控件并允许用户选择。
一旦用户选择要缩放的区域,我希望能够获得当前缩放(查看)区域的数据点。关于如何做到这一点有什么想法吗?我正在使用.Net 4.5。

下面是一个示例,它将当前可见的
数据点发送到控制台输出:

// 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]);
//两个快捷方式
ChartArea CA=chart1.ChartAreas[0];
系列S=图表1.系列[0];
//以下是缩放部分的X值:
双最小值=CA.axix.ScaleView.viewmimum;
double max=CA.axix.ScaleView.ViewMaximum;
//这些是各自的数据点:
数据点pt0=S.Points.Select(x=>x)
.其中(x=>x.XValue>=min)
.DefaultIfEmpty(S.Points.First()).First();
数据点pt1=S.Points.Select(x=>x)

哪里(x=>x.XValue它背后的想法是好的,尽管我不相信这段代码会起作用,除非在视图的最大值和最小值上有实际的点,这是非常不可能的。我将尝试以与您类似的方式过滤数据,以获得最小值和最大值之间的所有点。您是对的,我对答案做了一些修改.请尝试查看它是否也适用于您的数据,现在..!您是否同意更新版本?