【问题标题】:C# MSChart: Zooming on an intervalC# MSChart:缩放间隔
【发布时间】:2013-04-08 08:16:36
【问题描述】:

我有一个 MSChart 对象,其中包括一个折线图。 Y 轴代表权益的价值,X 轴代表一个 DateTime。使用组合框,用户可以更改 X 轴的间隔。例如,选择“一天”的值将强制 X 轴每天显示一个条形:

http://i.imgur.com/pY1c2Mw.png

但是,这还不够。除此之外,每当用户更改 X 轴的时间刻度时,我希望图表从图表中包含的第一个点放大到它找到的 X 轴的第一个间隔标记。简单来说,我想这样做:

http://i.imgur.com/MwTZO9c.png

自动。但是,我被卡住了,因为我不知道如何找到 X 轴上第一个间隔标记的“位置”。我知道我想从第一个数据点放大到间隔标记,但是当我不知道它可以有多大时,我该怎么做呢?请记住,用户可以自己更改时间刻度,因此我不能为此使用硬编码值。

我非常感谢您能给我的任何帮助,因为到目前为止我还没有找到任何结论性的东西。

编辑:这是我到目前为止发现的。更准确地说,我正在寻找的是 X 轴主网格的第一条网格线的位置。然而,当绘制两个轴的主要网格时,它们并没有被赋予一个真实的位置,或者至少那个位置不包含在一个属性中。因此,必须计算该位置 - 但如何计算?

【问题讨论】:

    标签: c# charts zooming mschart


    【解决方案1】:

    定义一个事件触发器:

    SelectionRangeChanged += new EventHandler<CursorEventArgs>(your_handler_function);
    

    在你的函数定义中:

    public void your_handler_function(object sender, CursorEventArgs e)
    {
        e.NewSelectionStart; // the beginning of the new range 
        e.NewSelectionEnd;   // the end of the new range
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多