Проблема масштабирования диаграммы C # с DataTime для оси X - PullRequest
4 голосов
/ 13 января 2011

используя MS Charting для .NET, я пытаюсь увеличить созданную мной диаграмму.

Это прекрасно работает на оси Y (type = float) и на оси X, если type = int, но когда у меня есть значения DateTime на оси X, прокрутка работает не так, как на этой оси.

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

Кто-нибудь знает, как это исправить и заставить его вести себя так же, как и со значениями с плавающей запятой?

Спасибо!

Ответы [ 3 ]

8 голосов
/ 28 июля 2011

В зависимости от ваших данных, попробуйте установить для свойства CursorX.IntervalType области диаграммы значение, отличное от Авто.

Вы можете столкнуться с подобной проблемой при попытке использовать маленькие стрелки прокрутки на полосе прокрутки после увеличения. Чтобы исправить это, вы можете попытаться установить для свойства AxisX.ScaleView.SmallScrollSizeType области диаграммы то же самое, что и CursorX.IntervalType.

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

        chart1.ChartAreas[0].CursorX.IsUserEnabled = true;
        chart1.ChartAreas[0].CursorX.IsUserSelectionEnabled = true;
        chart1.ChartAreas[0].CursorX.IntervalType = System.Windows.Forms.DataVisualization.Charting.DateTimeIntervalType.Minutes;
        chart1.ChartAreas[0].CursorX.Interval = 0.5D;

        chart1.ChartAreas[0].AxisX.ScaleView.SmallScrollSizeType = DateTimeIntervalType.Minutes;
        chart1.ChartAreas[0].AxisX.ScaleView.SmallScrollSize = 0.5D;
        chart1.ChartAreas[0].AxisX.ScaleView.Zoomable = true;
        chart1.ChartAreas[0].AxisX.LabelStyle.Format = "hh:mm:ss";
0 голосов
/ 12 января 2015

добавить

    chart.ChartAreas[0].AxisX.ScaleView.SmallScrollMinSizeType = DateTimeIntervalType.Seconds;
0 голосов
/ 23 июля 2013

У меня была та же проблема, и эти настройки решили ее для меня:

        _chart.ChartAreas[0].CursorX.IsUserEnabled = true;
        _chart.ChartAreas[0].CursorX.IsUserSelectionEnabled = true;
        _chart.ChartAreas[0].CursorX.IntervalType = DateTimeIntervalType.Minutes;
        _chart.ChartAreas[0].CursorX.Interval = 1D;

        _chart.ChartAreas[0].AxisX.ScaleView.SmallScrollSizeType = DateTimeIntervalType.Minutes;
        _chart.ChartAreas[0].AxisX.ScaleView.SmallScrollSize = 1D;
        _chart.ChartAreas[0].AxisX.ScaleView.Zoomable = true;

        _chart.ChartAreas[0].AxisX.ScaleView.MinSizeType = DateTimeIntervalType.Minutes;
        _chart.ChartAreas[0].AxisX.ScaleView.MinSize = 1D;

        _chart.ChartAreas[0].AxisX.ScaleView.SmallScrollMinSizeType = DateTimeIntervalType.Minutes;
        _chart.ChartAreas[0].AxisX.ScaleView.SmallScrollMinSize = 1D;

Особенно последние две строки сделали работу.

...