rj13103 Ответов: 2

Получить экран X,Y точки данных в MSChart


Есть ли способ получить экранную координацию точки данных MSChart?

2 Ответов

Рейтинг:
1

Member 14211258

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) 


Рейтинг:
0

Pubudu Dissanayaka

Dim mypoint As Point 
mypoint = Cursor.Position


Вы можете получить местоположение мыши из этого. Если это конкретно о графиках вы можете пойти и посмотреть http://msdn.microsoft.com/en-us/library/aa231230%28v=vs.60%29.aspx[^] в конце страницы.

Удачи вам!


rj13103

Спасибо за ваш любезный ответ, но я хочу сделать что-то, чтобы действовать вразрез с Хиттестом.Если я хочу сказать более ясно, HitTest ловит координацию точек данных из позиции курсора, но я хочу получить точное положение курсора из точки данных X,Y.

Pubudu Dissanayaka

С удовольствием. Я не совсем уверен, как это сделать. Но я нашел это на форуме. Пожалуйста, посмотрите, сможете ли вы что-нибудь из этого извлечь.

элемент 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