【问题标题】:DynamicDataDisplay zoom and tooltips on realtime charts with syncronous X axis动态数据在具有同步 X 轴的实时图表上显示缩放和工具提示
【发布时间】:2013-11-12 10:48:04
【问题描述】:

前段时间我发布了question关于同步图表。我在这里找到了解决方案,但我仍然有一些问题。

  • 我需要在 StrokeChart 的 Y 轴上放大和缩小才能看到我的日期。我不知道为什么,但是范围在下一个添加点上没有改变。实际上,Y 轴上的范围是 0-1。这很奇怪,但我可以忍受
  • 第二个问题是:如何配置图表区域的缩放?我希望它在向上/向下滚动时仅缩放 Y 轴。
  • 最后但同样重要的是:如何在使用 ObservableCollection 构建的图表上制作实时工具提示?它可以很容易地为 EnumerableDataSource 完成。您可以查看thisthis。我试图做用户“世纪”描述的事情,但它不起作用。我什至在 ObservableCollection 中添加了方法 AddMapping 并重建了库,但它仍然不起作用。所以我不知道下一步该怎么做。

感谢您提供任何帮助和建议。 谢谢

【问题讨论】:

    标签: c# charts dynamic-data-display


    【解决方案1】:

    关于缩放我想我设法解决了这个问题。

    MouseNavigation.cs 中添加新属性

    // 2014-02-22 - MPEKALSKI - added property to make possible
                             limiting on zoom on only one axis
    private bool? _zoomX;
    /// <summary>
    /// Property for allowing/disallowing for zoom along X axis. By default allowed (true).
    /// </summary>
    public bool zoomX
    {
        get { return _zoomX ?? true; }
        set { _zoomX = value; }
    }
    private bool? _zoomY;
    /// <summary>
    /// Property for allowing/disallowing for zoom along Y axis. By default allowed (true).
    /// </summary>
    public bool zoomY
    {
        get { return _zoomY ?? true; }
        set { _zoomY = value; }
    }     
    

    在同一个类中修改方法

    private void MouseWheelZoom(Point mousePos, int wheelRotationDelta)
    

    通过替换

    Viewport.Visible = Viewport.Visible.Zoom(zoomTo, zoomSpeed);
    

        // 2014-02-23 - MPEKALSKI - if we do not allow for change in Y
        //                          then keep the old value, by analogy for X
        Rect zoomedRect = Viewport.Visible.Zoom(zoomTo, zoomSpeed);
        if (zoomY == false) { zoomedRect.Y = Viewport.Visible.Y; 
                              zoomedRect.Height = Viewport.Visible.Height; }
        if (zoomX == false) { zoomedRect.X = Viewport.Visible.X;
                              zoomedRect.Width = Viewport.Visible.Width; }
        Viewport.Visible = zoomedRect;
    

    现在的使用非常简单,因为 chartPlotter 对象只需将属性 zoomY 或 zoomX 设置为 false 以防止沿此轴缩放。

    chartPlotter2.MouseNavigation.zoomY = false;
    

    我不知道它是否是最佳解决方案,但它对我有用。

    【讨论】:

    猜你喜欢
    • 2021-06-20
    • 1970-01-01
    • 1970-01-01
    • 2018-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-16
    相关资源
    最近更新 更多