界面增加Oxyplot.WindowsForms.Plot,鼠标悬停显示坐标值。
PlotType = PlotType.XY
private void InitPlotModel()
{
this.plot.Model = _PlotModel;
this.plot.Enabled = true;
this.plot.MouseHover += PlotView_MouseHover;
this.plot.MouseHover += PlotView_MouseLeave;
}
//增加光标悬停显示坐标值
private System.Windows.Forms.ToolTip toolTip = new System.Windows.Forms.ToolTip();
public Oxyplot.WindowsForms.Plot plot = null;
private void PlotView_MouseHover(object sender, EventArgs e)
{
toolTip = new System.Windows.Forms.ToolTip();
var plotView = ((Oxyplot.WindowsForms.Plot)sender).Model;
// 获取鼠标在PlotView控件中的坐标位置
var mousePosition = ((Oxyplot.WindowsForms.Plot)sender).PointToClient(Cursor.Position);
// 将鼠标位置的屏幕坐标转换为数据点的坐标值
var xAxis = plotView.Axes[0];
var yAxis = plotView.Axes[1];
double x = xAxis.InverseTransform(mousePosition.X, mousePosition.Y, yAxis).X;
//修改数值的展示
double y = xAxis.InverseTransform(mousePosition.X, mousePosition.Y, yAxis).Y;
// 在ToolTip中显示数据点的数值信息
toolTip.SetToolTip(((Oxyplot.WindowsForms.Plot)sender), $"{xAxis.Title}: {x},{yAxis.Title}: {y}");
// 设置ToolTip的AutoPopDelay属性为3000毫秒(3秒)
toolTip.AutoPopDelay = 3000;
}
private void PlotView_MouseLeave(object sender, EventArgs e)
{
if( plot != null)
{
toolTip.RemoveAll();
}
}