1

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

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

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

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

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

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

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

4

1 回答 1

0

定义事件触发器:

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
}
于 2017-04-19T08:06:33.183 回答