Как получить динамические интервалы в Dundas / Microsoft Chart Controls для Windows Forms? - PullRequest
1 голос
/ 11 мая 2009

Я использую Microsoft Chart Controls для .NET 3.5 и пытаюсь заставить элемент управления диаграммы поддерживать окно и изменять его размер.

У меня есть графики, где значение X - это даты, и я хочу, чтобы график отображал максимально доступные интервалы / метки на оси диаграммы при изменении размера окна.

Самое близкое, что я получил, это позвонил с события PrePaint:

double interval = chart.Series[0].Points.Count / ((double)chart.Width / 90);
foreach (var area in chart.ChartAreas.Where(ca => ca.Visible))
{
    area.AxisX.Interval = interval;
}

Это делает интервалы и метки идеально подходящими вдоль оси X, но даты не отображаются правильно. Эта первая метка кажется правильной (некоторые даты в 2008 году), но остальные метки вдоль оси вместо этого отображаются как некоторая дата в 1900 году.

Каков предпочтительный способ сделать это?

1 Ответ

1 голос
/ 30 августа 2010

Для дат в Microsoft Chart Controls вы должны явно указать минимальные даты для начала. В противном случае он берет 29 декабря 1899 года в качестве источника. Вы можете установить минимальную и максимальную даты на графике, например

chart.ChartAreas[0].AxisY.Minimum = (new DateTime(2010, 5, 1)).ToOADate();
chart.ChartAreas[0].AxisY.Maximum = (new DateTime(2011, 4, 1)).ToOADate();

Пост Создание диаграммы Ганта с элементами управления MS Chart содержит некоторую ценную информацию об элементах управления Microsoft Chart.

...