【问题标题】:Draw a vertical line on Left Click MouseDownEvent在 Left Click MouseDownEvent 上画一条垂直线
【发布时间】:2015-09-16 20:02:35
【问题描述】:

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

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

我想要做的是将这些信息保留在屏幕上,并且仅当用户尝试设置新信息、单击图表上的其他位置并替换旧信息时才使其消失。在用户点击的地方添加一个垂直条也很好。

我查看了 Oxyplot 文档,知道可以自定义此“跟踪器”,但我未能找到适合我情况的解决方案。

编辑:

我找到了this 示例,它似乎很有帮助,但我正在努力提取它的用处。请帮忙!

更新:

让我进一步解释我想要实现的目标。我有很多图表,每个图表都放在一个单独的面板(或选项卡)上。如果我左键单击图表的某个位置,我想在 每个图表 上显示该特定位置的 Tracker 信息,而用户不点击另一个位置(设置新的Tracker 并删除旧的)。换句话说,一次只允许一个Tracker,这是在每个现有图的相同X位置上设置的。

更新 2:

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

【问题讨论】:

    标签: wpf oxyplot tracker


    【解决方案1】:

    您可以取消绑定左键并通过将鼠标悬停来替换它,几乎总是显示跟踪器:

    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();”行。

    【讨论】:

    • 好吧,这行得通,但它仍然不是我正在寻找的行为。我会尝试更新我的问题以更好地解释。
    • 所以,你想左键单击并设置一个全局跟踪器位置。你有解除绑定的部分,现在你需要我想的左键点击事件部分。
    • 这更像是,是的。我需要设置一个 customTracker (或覆盖现有的),这样它就不会在 MouseUp 上消失并像你说的那样在全局范围内设置它。
    • 谢谢,我试试。我一完成测试就回来。
    • 在弄乱了这个建议之后,我认为这不是最好的方法。我会再用一个新想法更新这个问题。
    猜你喜欢
    • 2014-02-21
    • 1970-01-01
    • 1970-01-01
    • 2018-03-12
    • 1970-01-01
    • 2021-10-11
    • 1970-01-01
    • 1970-01-01
    • 2018-04-25
    相关资源
    最近更新 更多