【问题标题】:Livecharts and mouse position实时图表和鼠标位置
【发布时间】:2021-05-13 20:29:44
【问题描述】:

我想知道是否有办法获取图表上光标(鼠标)的位置X和Y?

目前我被 onData 卡住了,它只为我提供现有点的位置。

我想得到鼠标的位置,即使它与点无关。

例如,在 MS 数据可视化图表上,我可以通过以下方式获取这些值:

Chart myChart;
ChartArea ca = myChart.ChartAreas[0];
Axis ax = ca.AxisX;
Axis ay = ca.AxisY; 
double X = ax.PixelPositionToValue(e.X);
double Y = ay.PixelPositionToValue(e.Y);

使用 e,MouseEventArgs。

我试过了,不行:

Chart_TCC.MouseMove += Chart_TCC_MouseMove;
private void Chart_TCC_MouseMove(object sender, MouseEventArgs e)
{
    string mouseX = e.X.ToString();
    string mouseY = e.Y.ToString();

    MessageBox.Show("X = " + mouseX + " - Y = " + mouseY);
}

你知道LiveCharts库里有没有这个功能吗?

感谢您的帮助。

【问题讨论】:

    标签: c# charts livecharts


    【解决方案1】:

    【讨论】:

    • 感谢您的帮助 :) 但是此解决方案不适用于 WinForm。 :( 我没有足够的编程经验来启动 WPF...
    • 它也应该在 WinForms 中工作。试试这个链接:github.com/Live-Charts/Live-Charts/blob/master/Examples/Wpf/…让我知道究竟是什么不工作
    • 再次感谢您。因此,在示例中,他们使用的是“LiveCharts.Wpf.CartesianChart”,但我使用的是“LiveCharts.WinForms.CartesianChart”....看起来开发人员放弃了winform,因为没有“MouseMove” winform 附带的功能!这就是我实际上卡住的地方,因为控件没有能力发送我的光标位置。有什么想法吗?
    • 你好,所以我调查并找到了如何使用这个例子:) 首先我必须在轴属性中找到 mouseOver 并将函数添加到我的 .cs 中:Chart_TCC.AxisX.Chart.MouseMove += Chart_TCC_Axis_MouseMove; 然后我跟着你给我的链接的例子:var chart = (LiveCharts.Wpf.CartesianChart)sender;var mouseCoordinate = e.GetPosition(chart);var p = chart.ConvertToChartValues(mouseCoordinate);然后我得到我的计算值p.Xp.Y谢谢你帮助我:)我欠你一杯!
    • 我很高兴它成功了 :) 顺便说一下,新版本的 Livecharts 正在快速开发中。看一看,它的速度要快得多,但到目前为止只有测试版可用。 github.com/beto-rodriguez/LiveCharts2
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-07
    • 2011-01-21
    • 1970-01-01
    • 2021-09-22
    相关资源
    最近更新 更多