C# MSChart: масштабирование интервала

У меня есть объект MSChart, который рисует, среди прочего, линейный график. Ось Y представляет значение собственного капитала, а ось X представляет DateTime. Используя поле со списком, пользователь может изменить интервал оси X. Например, выбор значения «Один день» заставит ось X отображать один столбец каждый день:

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

Однако этого недостаточно. В дополнение к этому, всякий раз, когда пользователь изменяет шкалу времени оси X, я хотел бы, чтобы диаграмма увеличивалась от первой точки, содержащейся в диаграмме, до первой отметки интервала оси X, которую он находит. Проще говоря, я хотел бы сделать это:

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

Автоматически. Однако я застрял, потому что не знаю, как найти «положение» первой метки интервала на оси X. Я знаю, что хочу увеличить масштаб от первой точки данных до метки интервала, но как мне это сделать, если я не знаю, насколько большим он может быть? Пожалуйста, помните, что пользователь может сам изменить шкалу времени, поэтому я не могу использовать для этого жестко заданные значения.

Я был бы очень признателен за любую помощь, которую вы можете мне оказать, так как я пока не смог найти ничего убедительного.

РЕДАКТИРОВАТЬ: Вот что я нашел до сих пор. Точнее говоря, я ищу положение ПЕРВОЙ линии сетки главной сетки оси X. Однако, когда рисуются основные сетки для обеих осей, им не дается реальное положение, или, по крайней мере, это положение не содержится в свойствах. Следовательно, эта позиция должна быть рассчитана, но как?


person Frédéric Liard    schedule 08.04.2013    source источник


Ответы (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
}
person Omar Yaya    schedule 19.04.2017