我使用Microsoft.DataVisualization.Charting并希望在点击它时获取该点的值。
我的问题:我希望完全我点击的那个值,即使它只是图表计算的值和2点之间的值。
示例:3分:P(0; 3),P(1; 6),P(3; 12)
当我点击x值2时,如果线是线性的,我希望得到9。
目前我这样做:
HitTestResult[] hits = chart.HitTest(e.X, e.Y, false, ChartElementType.PlottingArea);
//DataInformation save the DateTime and Value for later use
DataInformation[] dinfo = new DataInformation[hits.Length];
foreach (ChartArea area in chart.ChartAreas)
{
area.CursorX.LineWidth = 0; //clear old lines
}
for (int i = 0; i < hits.Length; i++) //for all hits
{
if (hits[i].ChartElementType == ChartElementType.PlottingArea)
{
//val saves the x-value clicked in the ChartArea
double val = hits[i].ChartArea.AxisX.PixelPositionToValue(e.X);
DataPoint pt = chart.Series[hits[i].ChartArea.Name].Points.Last(elem => elem.XValue < val);
dinfo[i].caption = hits[i].ChartArea.Name;
dinfo[i].value = pt.YValues[0].ToString();
//hits[i].ChartArea.CursorX.Position = pt.XValue;
}
}
这会显示每个现有数据点的正确值,但不会显示点击点。
我怎样才能得到确切的值?
答案 0 :(得分:0)
看来,没有办法获得确切的价值。我改为OxyPlot。 OxyPlot可以更快地显示数据,您可以获得任何点的确切值。