簡體   English   中英

動態數據在具有同步X軸的實時圖表上顯示縮放和工具提示

[英]DynamicDataDisplay zoom and tooltips on realtime charts with syncronous X axis

前一段時間,我發布了有關同步圖表的問題 我在這里找到了解決方案,但仍然存在一些問題。

  • 我需要在StrokeChart的Y軸上放大和縮小以查看日期。 我不知道為什么,但是下一個添加點的范圍不會改變。 實際上,Y軸上的范圍是0-1。 很奇怪,但我可以忍受
  • 第二個問題是:如何配置放大圖表區域? 向上/向下滾動時,我只希望它縮放Y軸。
  • 最后但並非最不重要的一點:如何在使用ObservableCollection構建的圖表上制作實時工具提示? 可以輕松實現EnumerableDataSource。 你可以檢查這個這個 我嘗試執行用戶“ Thecentury”描述的操作,但不起作用。 我什至在ObservableCollection中添加了AddMapping方法並重建了庫,但仍然無法正常工作。 所以我不知道下一步該怎么做。

感謝您的幫助和建議。 謝謝

關於縮放,我認為我設法解決了這個問題。

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;

我不知道這是最理想的解決方案,但對我有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM