Winforms Windows窗体图表:获取图表轴比例中的鼠标光标坐标?

Winforms Windows窗体图表:获取图表轴比例中的鼠标光标坐标?,winforms,charts,onclick,position,coordinates,Winforms,Charts,Onclick,Position,Coordinates,我对以下示例有问题: 当我点击屏幕截图上标记为'1'的位置时,我可以通过鼠标点击事件以非常简单的方式获得像素位置: private: System::Void chart1_MouseClick(System::Object^ sender, System::Windows::Forms::MouseEventArgs^ e) { Point chartLocationOnForm = chart1->FindForm()->PointToClient(cha

我对以下示例有问题:

当我点击屏幕截图上标记为'1'的位置时,我可以通过鼠标点击事件以非常简单的方式获得像素位置:

private: System::Void chart1_MouseClick(System::Object^  sender, System::Windows::Forms::MouseEventArgs^  e) {

        Point chartLocationOnForm = chart1->FindForm()->PointToClient(chart1->Parent->PointToScreen(chart1->Location));                

        cursorPosX = e->X - chartLocationOnForm.X;
        cursorPosY =  e->Y - chartLocationOnForm.Y;
}
打印出这些值后,我得到了以像素为单位的位置,其中标记为'2'的位置等于(0,0)

单击“1”中的点后,我希望得到的是

X:40
Y:178.5

哪些是我的图表中的坐标。有什么文明的方法可以做到这一点吗(我的意思是除了考虑图表的填充、边距和边框以及自己计算这些坐标之外)


我的一个想法是创建某种看不见的CursorX和CursorY,并使用它的方法,但它似乎更像是一种解决简单问题的奇特方法,而不是一种真正的、直接的解决方案。我是对的,还是这真的是我解决问题的方法?

是的,如果我正确理解了你的问题,有一种文明的方法。您可以使用Axis.PixelPositionToValue方法来实现这一点

例如(用C#表示)


是的,如果我没弄错你的问题,这是一种文明的方式。您可以使用Axis.PixelPositionToValue方法来实现这一点

例如(用C#表示)

chart.ChartAreas[0].AxisX.PixelPositionToValue(pt.X)
chart.ChartAreas[0].AxisY.PixelPositionToValue(pt.Y)