我使用Oxyplot库根据实时数据绘制一些图表。我知道有一个名为Tracker
的功能,它会根据用户左键单击的Position
显示一些类似工具提示的信息(例如坐标)。只有在按下左键时才会显示信息。
我目前正在线图上测试此功能,不确定它是否适用于其他类型。
我想要做的是将此信息保留在屏幕上,只有当用户尝试设置新信息,点击图表上的其他位置并替换旧信息时才会使其消失。添加用户点击的垂直条也很不错。
我检查了Oxyplot文档,我知道可以自定义此跟踪器,但我找不到适合我情况的解决方案。
编辑:
我发现了this例子,看起来很有帮助,但我正在努力提取它的实用性。请帮忙!
更新:
让我再谈谈我想要实现的目标。我有很多图表,每个图表都放在一个单独的面板(或标签)上。如果我左键单击图表的某个位置,我想在每个图表上显示该特定位置的Tracker
信息,而用户不会点击另一个图表 position(设置一个新的Tracker
并删除旧的Tracker
)。换句话说,一次允许一个Tracker
,并在同一X位置的每个现有图表上设置。
更新2:
好吧,所以在考虑之后,我决定在点击左键时不保持 select * From acct_db2016.dbo.acct_tran where trc_acno='12008001'
。相反,我只想让在点击位置的每个图表上绘制一条垂直线。一次只允许一行,它可以被视为临时标记"。我相信这比其他方法更可行,并且足以满足我的需求。
答案 0 :(得分:0)
您可以取消绑定左键并仅通过悬停鼠标来替换它,几乎总是显示跟踪器:
public PlotController customController { get; private set; }
customController = new PlotController();
customController.UnbindMouseDown(OxyMouseButton.Left);
customController.BindMouseEnter(PlotCommands.HoverSnapTrack);
的Xaml:
<oxy:PlotView Controller="{Binding customController}"/>
编辑&gt;&gt;&gt;&gt;&gt;&gt;
TrackerManipulator代码:https://github.com/ylatuya/oxyplot/blob/master/Source/OxyPlot/Manipulators/TrackerManipulator.cs
我认为您应该创建一个自定义TrackerManipulator,并覆盖Complete方法以不执行“this.PlotControl.HideTracker();”线。