MS Chart, даты оси X и взаимодействие курсора при индексировании значения X - PullRequest
0 голосов
/ 09 июня 2010

Добрый день,

Ух ты какой заголовок.

В основном это вещь.

Если есть временной ряд, который не является непрерывным.

Следовательно, поскольку я использую свойство IsXValueIndexed для Series (установлено значение true), чтобы сжать пространство между отдельными точками.

Это отлично работает, однако теперь я хотел бы иметь возможность восстановить детали точки из графика (значения X и Y) и отобразить их в виде метки на форме.

Следовательно, я использую следующее событие:

void myChart_CursorPositionChanging(object sender, CursorEventArgs e)
    {
        if (!double.IsNaN(e.NewPosition))
        {
            if (e.Axis.AxisName == AxisName.X)
            {
                lbl_selDate.Content = DateTime.FromOADate(e.NewPosition);
            }
            else
            {
                lbl_selValue.Content = e.NewPosition;
            }
        }
    }

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

Можете ли вы случайно помочь мне?

Спасибо!

Жереми

1 Ответ

3 голосов
/ 28 апреля 2011

предположим, что у вас есть ось x типа DateTime, затем используйте:

DateTime xValue = DateTime.FromOADate(((Chart)sender).Series[0].Points[(int)e.NewPosition - 1].XValue)

предположим, что у вас есть ось y типа double, а затем используйте:

double yValue = ((Chart)sender).Series[0].Points[(int)e.NewPosition - 1].YValues[0];
...