У меня была собственная работа дьяволов, воспроизводящая вашу ситуацию. Я хотел помочь, потому что думал, что смогу чему-то научиться, но мне нужна была ваша разметка или, еще лучше, целое решение! Я пробовал "Ошибка выполнения дочернего запроса для ChartImg.axd", когда я пробовал простую страницу с диаграммой. Я обнаружил, что мне нужно добавить обработчик в конфигурации. Затем я боролся с ошибкой загрузки сборки System.Web.DataVisualization, поскольку скопированный элемент обработчика ссылался на сборку 3.5 DataVisualization, поэтому я изменил ее на 4.0 и, наконец, увидел график. Что это была за работа!
Причина, по которой ваш ряд прокладок не создает пробел, заключается в том, что в этом ряду нет значений. Обратите внимание на две последние строки кода ниже, которые добавляют нулевые значения к серии спейсеров. Это создает желаемый разрыв между другими сериями, но вы также найдете ряд проставок, перечисленных в вашей легенде, если у вас есть, что уродливо, если не сказать больше.
for (var c = start; c < start + 6; c++)
{
var color = colors[c % colors.Count];
var seriesName = "Series "+ c;//color.Name);
Chart1.Series.Add(seriesName);
Chart1.Series[seriesName].BorderColor = color;
Chart1.Series[seriesName].BorderWidth = 1;
Chart1.Series[seriesName].Color = Color.FromArgb((int)(255 * .7), color);
Chart1.Series[seriesName].BackSecondaryColor = Color.FromArgb((int)(255 * .2), color);
Chart1.Series[seriesName].BackGradientStyle = GradientStyle.TopBottom;
for (var year = DateTime.Now.AddYears(-5).Year; year < DateTime.Now.Year; year++)
Chart1.Series[seriesName].Points.Add(new DataPoint(year, rng.Next(0, 20)));
Chart1.Series[seriesName]["PointWidth"] = (0.6).ToString();
seriesName = "Spacer:" + seriesName;
Chart1.Series.Add(seriesName);
Chart1.Series[seriesName]["PointWidth"] = (0.6).ToString();
for (var year = DateTime.Now.AddYears(-5).Year; year < DateTime.Now.Year; year++)
Chart1.Series[seriesName].Points.Add(new DataPoint(year, 0));
}
Вы можете установить текст легенды на пробел (примечание. Пустая строка игнорируется, а текст легенды не задан) следующим образом, но легенда все равно будет отображать эти серии разделителей.
Chart1.Series[seriesName].LegendText = " ";
Если вам повезет, вам не нужно показывать легенду, или вы можете установить цвета серии распорок на тот же цвет, что и на фоне легенды, а текст легенды - на пробелы. Это приводит к двойному интервалу в легенде, который, вероятно, будет приемлемым.