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