2015-09-16 35 views
1

我使用Oxyplot库来绘制基于实时数据一些图表。我知道有一个名为Tracker的功能,它基于用户左键单击的Position显示了一些类似工具提示的信息(例如坐标)。信息仅在按下左键时显示。借鉴左垂直线上点击MouseDownEvent

我目前上线图,不知道这是否适用于其他类型的测试此功能。

我想要做的就是把这个信息在屏幕上,使只有当用户试图设置一个新的,点击其他地方的图形和更换旧的信息,它即消失。在用户点击的位置添加一个垂直条也不错。

我检查了Oxyplot文档,我知道这是可以自定义这个“跟踪”,但我没能找到我的情况的解决方案。

编辑:

我发现this例子,似乎有帮助,但我挣扎提取了它的实用性。请帮忙!

UPDATE:

让我走远一点就什么,我试图达到的解释。我有很多图表,每个图表放置在一个单独的面板(或选项卡)上。如果我在一个图形的位置单击鼠标左键,我想告诉每一位图上特定位置Tracker信息,而用户不上的另一位置单击(设置新Tracker和移除旧)。换句话说,一次只允许一个Tracker,并且这在每个现有的图上设置在相同的X位置。

更新2:

好了,所以给它一个想法之后,我决定不再维持Tracker左键单击。相反,我只想在点击位置的每个图上绘制垂直线。一次只允许一条线,可将其视为“临时标记”。我相信这比其他方法更可行,并且满足我的需求。

回答

0

您可以取消绑定左键和刚刚将鼠标,几乎总是显示跟踪器替换它:

public PlotController customController { get; private set; } 

customController = new PlotController(); 
customController.UnbindMouseDown(OxyMouseButton.Left); 
customController.BindMouseEnter(PlotCommands.HoverSnapTrack); 

的XAML:

<oxy:PlotView Controller="{Binding customController}"/> 

编辑>>>>>>

TrackerManipulator代码:https://github.com/ylatuya/oxyplot/blob/master/Source/OxyPlot/Manipulators/TrackerManipulator.cs

我想你应该创建一个自定义的TrackerManipulator,并重写Complete方法以避免执行“this.PlotControl.HideTracker();”线。

+0

好的,这工作,但它仍然不是我正在寻找的行为。我会尝试更新我的问题以更好地解释。 –

+0

因此,您想要左键单击并设置全球跟踪器位置。你有unbind部分,现在你需要我想的左键单击事件部分。 – Jose

+0

更喜欢它,是的。我需要设置一个customTracker(或覆盖现有的),所以它不会在MouseUp上消失并像你说的那样在全局范围内设置它。 –