使用ChartColorPalette时,如何在运行时读取Series.Color?

时间:2012-03-28 13:46:21

标签: c# asp.net mschart

我有一个包含多个系列的图表。我使用ChartColorPalette自动将foreach系列设置为不同的颜色。

在那一刻,当我创建我的系列时,我想读取Color以给dropDownList.listItem提供相同的backgroundColor。但不幸的是,在那个时刻,颜色仍未设置。

系列是否有可能在稍后的ASP.NET渲染事件中从ChartColorPalette中获取颜色定义?

或者我做错了什么?

Chart newChart = new Chart();
newChart.Palette = ChartColorPalette.Bright;

Series newSeries;

foreach (....)
{
   newSeries = new Series();
   newChart.Series.Add(newSeries);

   // no color found :(
   string colorName = newSeries.Color.Name

   // same here
   string colorName = newChart.Series[identifier].Color.Name;

   myDropDownList.Items.FindByValue(identifier).Attributes.Add("style", "background: " + colorName + ";");
}

2 个答案:

答案 0 :(得分:18)

从Dundas网站(MS图表代码的原始来源,自2018年8月起不再在线提供),您可以强制它手动应用调色板。

newChart.ApplyPaletteColors();
Color thisColor = newChart.Series[identifier].Color;

我认为您需要首先添加所有系列,然后在应用调色板并将颜色填充到下拉后循环显示它们。

答案 1 :(得分:0)

为什么不直接使用Chart Color Palette?

foreach(string colorName in Enum.GetNames(typeof(ChartColorPallette))
{
}