.NET Charting - шаблон серии - PullRequest
0 голосов
/ 17 мая 2011

Миссия: применить универсальный шаблон к серии графиков.

Файл моего шаблона:

<Chart BackColor="211, 223, 240" Width="250" Height="100" BackGradientStyle="TopBottom" BackSecondaryColor="Blue" BorderColor="26, 59, 105" BorderWidth="2">
  <Series>
    <series _Template_="All" Color="Black" BorderColor="180, 26, 59, 105">
    </series>
  </Series>
</Chart>

Стили, примененные к "Графику", работают отлично. Тем не менее, ничего не применимо к шаблону серии работает; он просто содержит стиль по умолчанию.

Моя функция, которая возвращает изображение графика:

    private FileContentResult ImageCall(string config)
    {
        System.Web.UI.DataVisualization.Charting.Chart chart = new System.Web.UI.DataVisualization.Charting.Chart();


        if (config.Length > 0)
        {
            chart.Serializer.IsTemplateMode = true;
            chart.Serializer.IsResetWhenLoading = false;
            chart.Serializer.SerializableContent = "*.*";
            chart.Serializer.Load(config);
        }

        Series s2 = new Series("Series1");
        s2.ChartArea = "Area1";
        s2.ChartType = SeriesChartType.Column;
        s2.Points.Add(new DataPoint
        {
            AxisLabel = "Value1",
            YValues = new double[] { 1 }
        });
        s2.Points.Add(new DataPoint
        {
            AxisLabel = "Value2",
            YValues = new double[] { 2 }
        });
        chart.Series.Add(s2);

        ChartArea ca1 = new ChartArea("Area1");
        chart.ChartAreas.Add(ca1);

        using (var ms = new MemoryStream())
        {
            chart.SaveImage(ms, ChartImageFormat.Png);
            ms.Seek(0, SeekOrigin.Begin);

            return File(ms.ToArray(), "image/png", "mychart.png");
        }
    }

Вот как это выглядит (дерьмо, я знаю ... это просто иллюстративно):

chart

Обратите внимание, что столбики не имеют стиля, в то время как график, кажется, выглядит очень хорошо.

Документация, касающаяся встроенных диаграмм .NET, крайне мала. Может кто-нибудь помочь мне заставить мои общие шаблоны работать? Там есть большая зеленая галочка для вас!

Я, наверное, упускаю что-то очевидное. Спасибо!

1 Ответ

2 голосов
/ 17 мая 2011

Вздох

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

Вот обновленный код:

private FileContentResult ImageCall(string config)
{
    System.Web.UI.DataVisualization.Charting.Chart chart = new System.Web.UI.DataVisualization.Charting.Chart();



    Series s2 = new Series("Series1");
    s2.ChartArea = "Area1";
    s2.ChartType = SeriesChartType.Column;
    s2.Points.Add(new DataPoint
    {
        AxisLabel = "Value1",
        YValues = new double[] { 1 }
    });
    s2.Points.Add(new DataPoint
    {
        AxisLabel = "Value2",
        YValues = new double[] { 2 }
    });
    chart.Series.Add(s2);

    ChartArea ca1 = new ChartArea("Area1");
    chart.ChartAreas.Add(ca1);

            //REPOSITIONED
    if (config.Length > 0)
    {
        chart.Serializer.IsTemplateMode = true;
        chart.Serializer.IsResetWhenLoading = false;
        chart.Serializer.SerializableContent = "*.*";
        chart.Serializer.Load(config);
    }

    using (var ms = new MemoryStream())
    {
        chart.SaveImage(ms, ChartImageFormat.Png);
        ms.Seek(0, SeekOrigin.Begin);

        return File(ms.ToArray(), "image/png", "mychart.png");
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...