【发布时间】:2012-06-08 06:17:31
【问题描述】:
谁能告诉我我可以在 ASP.Net 图表控件中使用自定义颜色。例如,我有两个系列 TOTAL 和 TARGET,我想将 total 的颜色设置为 green,将 target 的颜色设置为 red。
【问题讨论】:
-
我了解到,诸如此类的问题有时会在 Microsoft 的论坛上得到更好的答案。
谁能告诉我我可以在 ASP.Net 图表控件中使用自定义颜色。例如,我有两个系列 TOTAL 和 TARGET,我想将 total 的颜色设置为 green,将 target 的颜色设置为 red。
【问题讨论】:
类似这样的:
Color[] colors = new Color[] { Color.Green, Color.Red };
foreach (Series series in Chart1.Series)
{
foreach (DataPoint point in series.Points)
{
point.LabelBackColor = colors[series.Points.IndexOf(point)];
}
}
【讨论】:
iv 做了类似的事情
Chart2.Series.Add(new Series("Target")
{
ChartType = SeriesChartType.Column,
Color = Color.Red,
});
【讨论】:
new 语句中设置颜色的方式。它看起来比我使用的方法更优雅。
假设您的 Series1 有两个点。 因此,您可以按如下方式自定义颜色:
Chart1.Series["Series1"].Points[0].Color=Color.Red;
Chart1.Series["Series1"].Points[1].Color=Color.Yellow;
【讨论】:
System.Web.UI.DataVisualization.Charting.Series 对象有一个Color 属性。只需将颜色属性设置为您需要的颜色即可。下面是一个将给定值的水平线添加到图表的代码示例:
public static System.Web.UI.DataVisualization.Charting.Chart addLineToChart(
System.Web.UI.DataVisualization.Charting.Chart pChart, double pValue, System.Drawing.Color pColor)
{
// I will declare a new series where every value is the value passed in
System.Web.UI.DataVisualization.Charting.Series constantLineSeries = new System.Web.UI.DataVisualization.Charting.Series();
constantLineSeries.ChartType = System.Web.UI.DataVisualization.Charting.SeriesChartType.Line;
constantLineSeries.BorderWidth = ChartingValues.CHART_LINE_THICKNESS;
constantLineSeries.Color = pColor;
// At each point in the old series, add a constant point in the new series.
foreach(System.Web.UI.DataVisualization.Charting.DataPoint point in pChart.Series[0].Points)
{
System.Web.UI.DataVisualization.Charting.DataPoint constantLinePoint = new System.Web.UI.DataVisualization.Charting.DataPoint();
constantLinePoint.XValue = point.XValue;
constantLinePoint.YValues = new double[] { pValue };
constantLineSeries.Points.Add(constantLinePoint);
}
pChart.Series.Add(constantLineSeries);
pChart.ChartAreas[0].Area3DStyle.Enable3D = false;
return pChart;
}
此代码示例对您可能会发现有用的其他一些属性进行了调整。
【讨论】:
我不知道这是否有帮助,但我创建了一个自定义控件,它公开了几个可以调整的参数,例如图表类型、颜色、墙宽等。
http://www.foliotek.com/devblog/asp-net-4-0-custom-chart-control-adjustable/
【讨论】: