You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何绑定鼠标键至HoverTrack?右键绑定HoverTrack后显示异常咨询

解决OxyPlot右键HoverTrack点击后数据不消失的问题

我之前也碰到过这个坑,问题出在HoverTrack命令的设计逻辑上——它默认是按住鼠标期间持续启用跟踪,但你只绑定了MouseDown事件:这只会触发一次启动跟踪的动作,却没有绑定对应的停止操作,所以控件会一直误以为右键还处于按住状态,直到光标离开PlotView才会自动终止跟踪。

修复方案

给右键的MouseUp事件绑定CancelHover命令就行,这样松开右键时就会立即停止跟踪,数据也会随之消失。修改后的代码如下:

var plotViewMain = new PlotView();
var controller = new PlotController();
controller.UnbindAll();

// 左键绑定平移功能
controller.BindMouseDown(OxyMouseButton.Left, OxyPlot.PlotCommands.PanAt);

// 右键按下启动跟踪,松开停止跟踪
controller.BindMouseDown(OxyMouseButton.Right, OxyPlot.PlotCommands.HoverTrack);
controller.BindMouseUp(OxyMouseButton.Right, OxyPlot.PlotCommands.CancelHover);

plotViewMain.Controller = controller;

原理说明

  • HoverTrack:触发后开启数据跟踪模式,显示光标位置对应的系列数值
  • CancelHover:主动终止跟踪模式,隐藏显示的数值信息

通过同时绑定鼠标按下和松开事件,就能实现“按住右键时显示数据,松开后立即消失”的预期效果,不用再等光标离开PlotView了。

内容的提问来源于stack exchange,提问作者Log Dog

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 07:28:03