我有一个包含多个系列的图表。我使用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 + ";");
}
答案 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))
{
}