C# 在MS图表上的缩放视图上获取点
我正在使用Microsoft图表控件并允许用户选择。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
一旦用户选择要缩放的区域,我希望能够获得当前缩放(查看)区域的数据点。关于如何做到这一点有什么想法吗?我正在使用.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它背后的想法是好的,尽管我不相信这段代码会起作用,除非在视图的最大值和最小值上有实际的点,这是非常不可能的。我将尝试以与您类似的方式过滤数据,以获得最小值和最大值之间的所有点。您是对的,我对答案做了一些修改.请尝试查看它是否也适用于您的数据,现在..!您是否同意更新版本?