2014-12-29 4 views
0

Я пытаюсь использовать пространство имен System.Web.UI.DataVisualization.Charting для создания круговой диаграммы, и я получил ее в основном что я хочу. Тема Я использую имеет следующий код:Изменение цвета ярлыка на круговой диаграмме с использованием System.Web.UI.DataVisualization.Charting namespace

public static class ChartThemes 
{ 
    public const string Blue = 
    @"<Chart ForeColor=""#ffffff"" BackColor=""#0000ff"" BackGradientStyle=""TopBottom""   BackSecondaryColor=""White"" BorderColor=""26, 59, 105"" BorderlineDashStyle=""Solid"" BorderWidth=""2"" Palette=""none"" PaletteCustomColors=""#0000FF; #0055ff; #5599ff;""> 
    <Titles> 
     <Title ForeColor=""#ffffff"" Name=""main"" Font=""Arial Black, 16pt, style=Bold"" /> 
    </Titles> 
    <ChartAreas> 
     <ChartArea Name=""Default"" _Template_=""All"" BackColor=""64, 165, 191, 228"" BackGradientStyle=""TopBottom"" BackSecondaryColor=""White"" BorderColor=""64, 64, 64, 64"" BorderDashStyle=""Solid"" ShadowColor=""Transparent""> 
      <AxisY LineColor=""64, 64, 64, 64"" TitleForeColor=""#ffffff"" TitleFont=""Arial Black, 8pt""> 
       <MajorGrid Interval=""Auto"" LineColor=""#00ff00"" /> 
       <LabelStyle Font=""Trebuchet MS, 16pt, style=Bold"" ForeColor=""#ffffff"" /> 
      </AxisY> 
      <AxisX TitleForeColor=""#ffffff"" TitleFont=""Arial Black, 8pt""> 
       <LabelStyle ForeColor=""#ffffff"" /> 
       <MajorGrid Interval=""Auto"" LineColor=""#ff0000"" /> 
      </AxisX> 
      <AxisX2> 
       <LabelStyle ForeColor=""#ffffff"" /> 
      </AxisX2> 
      <AxisY2> 
       <LabelStyle ForeColor=""#ffffff"" /> 
      </AxisY2> 
     </ChartArea> 
    </ChartAreas> 
    <Legends> 
     <Legend _Template_=""All"" BackColor=""Transparent"" Font=""Trebuchet MS, 8.25pt, style=Bold"" IsTextAutoFit=""False"" ForeColor=""#ffffff""/> 
    </Legends> 
    <BorderSkin SkinStyle=""Emboss"" /> 
    </Chart>"; 
} 

Тогда я генерирующий мой круговую диаграмму, как это:

public ActionResult PieChart() 
{ 
    var chart2 = new Chart(width: 600, height: 600, theme: Helpers.ChartThemes.Blue).AddTitle("Pie Chart","main") 
    .AddSeries("Default", chartType: "Pie", xValue: new[] { "Pizza", "Hamburgers", "Hot Dogs" }, yValues: new[] { 20, 20, 60 }) 
    .AddLegend() 
    .GetBytes("png"); 
    return File(chart2, "image/png"); 
} 

я затем получить диаграмму, которая выглядит как:

Blue Pie Chart

Проблема в том, что я не хочу, чтобы метки, которые на сегментах пирога были черными, я хочу, чтобы они были белыми. Однако я не могу найти много документации о том, как это сделать в XML или любым другим способом.

Итак, мой вопрос заключается в том, как использовать XML для изменения цвета меток на сегментах самого пирога (тех, которые черны на картинке)?

+0

В чем ваш вопрос в точности? ;) – sunnysidedown916

+0

@ sunnysidedown916 мой плохой он должен быть очищен сейчас. Но в основном я хочу изменить метки на сегменты пирога (черные) на другой цвет. Я просто играю с графиками прямо сейчас, так что это не имеет значения, цвет. –

ответ

1

Хорошо, я понял. Я должен был добавить серию в XML. Для этого мне нужно было знать название серии, и я это знаю, потому что, когда я назвал метод AddSeries на chart2, первым параметром является его имя, поэтому имя моей серии - Default.

Итак, следующий шаг, который я принял, заключался в том, чтобы добавить серийный тег и тег конца серии до ChartAreas. Между ТЕХ серии тега я добавил другую серию тега, который имел Name и LabelForeColor свойства, как так:

<Series Name=""Default"" LabelForeColor=""#ffffff"" /> 

Если вы хотите добавить больше свойств вы могли бы по using the properties listed in this Documentation.

Таким образом, конечный XML выглядел:

@"<Chart ForeColor=""#ffffff"" BackColor=""#0000ff"" BackGradientStyle=""TopBottom"" BackSecondaryColor=""White"" BorderColor=""26, 59, 105"" BorderlineDashStyle=""Solid"" BorderWidth=""2"" Palette=""none"" PaletteCustomColors=""#0000FF; #0055ff; #5599ff;""> 
    <Titles> 
     <Title ForeColor=""#ffffff"" Name=""main"" Font=""Arial Black, 16pt, style=Bold"" /> 
    </Titles> 
    <Series> 
     <Series Name=""Default"" LabelForeColor=""#ffffff"" /> 
    </Series> 
    <ChartAreas> 
    //... and so on and so forth 

Это результирующее изображение:

White Label Pie Chart

Я понял это с помощью This blog post. Я заметил, что они меняют цвет серии, поэтому я понял, что что-то подобное в XML будет делать трюк.

+0

Удивительный! :) Отличная работа! : D – sunnysidedown916

Смежные вопросы