Получить экран X,Y точки данных в MSChart
Есть ли способ получить экранную координацию точки данных MSChart?
If the scale of the X-axis and Y-axis are both linear you can do the following: In the Paint event routine of the chart the Y-top and Y-bottom can be found by using ValueToPixelPosition as follows: intYTop = msChart.ChartAreas(0).AxisY.ValueToPixelPosition(msChart.ChartAreas(0).AxisY.Maximum) intYBot = msChart.ChartAreas(0).AxisY.ValueToPixelPosition(msChart.ChartAreas(0).AxisY.Minimum) intYlen = intYBot - intYTop intYMaxV = msChart.ChartAreas(0).AxisY.Maximum 'Maximum Y-value '* The start of the X-axis and the difference between two X-MajorTickMarks is obtained via: intXLft =msChart.ChartAreas(0) .ValueToPixelPosition(msChart.ChartAreas(0).AxisX.Minimum) intXint = msChart.ChartAreas(0).ValueToPixelPosition(2) - msChart.ChartAreas(0).ValueToPixelPosition(1) 'Distance X-MajorTickMarks '* For a DataPoint with index = intIndex and Y-value = Y-value the x and y coördinates are: x = intXLft + (intIndex * intXint) y = intYBot - (Y-value) / intYMaxV) * intYlen)
Dim mypoint As Point mypoint = Cursor.Position
Спасибо за ваш любезный ответ, но я хочу сделать что-то, чтобы действовать вразрез с Хиттестом.Если я хочу сказать более ясно, HitTest ловит координацию точек данных из позиции курсора, но я хочу получить точное положение курсора из точки данных X,Y.
С удовольствием. Я не совсем уверен, как это сделать. Но я нашел это на форуме. Пожалуйста, посмотрите, сможете ли вы что-нибудь из этого извлечь.
элемент chartarea1.CursorX.IsUserEnabled = true;
элемент chartarea1.CursorX.IsUserSelectionEnabled = true;
// установите цвет выделения прозрачным, чтобы выделение диапазона не рисовалось
chartArea1.CursorX.SelectionColor = система.Рисование.Цвет.Прозрачный;
Полная ссылка - http://stackoverflow.com/questions/8724085/get-data-point-when-user-click-a-line-graph-using-datavisualization-charting-cha