C#MSChart:缩小间隔时间

时间:2013-04-08 08:16:37

标签: c# charts zoom mschart

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

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

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

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

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

我非常感谢你能给我的任何帮助,因为到目前为止我一直无法找到任何结论。

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

1 个答案:

答案 0 :(得分: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
}