首页 文章

在Left上绘制一条垂直线单击MouseDownEvent

提问于
浏览
1

我正在使用Oxyplot库根据实时数据绘制一些图表 . 我知道有一个名为 Tracker 的功能,它根据用户左键单击的 Position 显示一些类似工具提示的信息(例如坐标) . 仅在按下左按钮时显示该信息 .

我目前正在线图上测试此功能,不确定它是否适用于其他类型 .

我想要做的是将此信息保留在屏幕上,并且只有当用户尝试设置新信息,点击图表上的其他位置并替换旧信息时才会使其消失 . 添加用户单击的垂直条也很不错 .

我检查了Oxyplot文档,我知道可以自定义这个'Tracker',但我找不到适合我情况的解决方案 .

编辑:

我发现this例子,看起来很有帮助,但我很难提取它的用处 . 请帮忙!

更新:

让我再谈谈我正在努力实现的目标 . 我有很多图表,每个图表都放在一个单独的面板(或标签)上 . 如果我左键单击图形的位置,我想在该特定位置 on each and every graph 上显示 Tracker 信息,而用户没有点击另一个位置(设置新的 Tracker 并删除旧的位置) . 换句话说,一次允许一个 Tracker ,并且在同一X位置的每个现有图形上设置 .

更新2:

好吧,所以在考虑之后,我决定在点击左键时不保持 Tracker . 相反,我只想要 to draw a vertical line on every graph on the position of the click . 一次只允许一行,可以将其视为"temporary marker" . 我相信这比其他方法更可行,并且足以满足我的需求 .

1 回答

  • 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();”线 .

相关问题