2011-01-13 3 views
4

с использованием MS Charting для .NET. Я пытаюсь увеличить масштаб, который я создал.C# Диаграмма изменения масштаба с помощью DataTime для оси X

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

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

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

Спасибо!

ответ

8

В зависимости от ваших данных попробуйте установить свойство 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

Спасибо за ответ, - но до сих пор не работает. Тем не менее, я не сталкивался с ScaleView, так что у меня будет копать и посмотреть, дает ли это какие-либо подсказки. – Mark

+0

Вначале очень помогли: установили его в считанные минуты. – nerijus

+0

Спасибо, это сделал трюк для меня, очень ценимый! – Austin

0

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

 _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; 

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

0

добавить

chart.ChartAreas[0].AxisX.ScaleView.SmallScrollMinSizeType = DateTimeIntervalType.Seconds; 
Смежные вопросы