MS图中的绘图区域梯度

时间:2014-07-30 08:58:37

标签: c# charts

我目前正在使用MS Chart第一次,我希望我的C#Programm在我的图表下绘制一个灰色到白色的渐变,就像这样(左边是当前版本,右边是我的想做):

编辑:谢谢Dmitry将我的链接中的图片包括在内:)

到目前为止,我为MS Chart找到的唯一渐变选项是背景。

到目前为止,这是我对图表的基本配置:

chart.Series.Add(MsChartHelper.CreateSeries(chartData, SeriesChartType.Line));
chart.ChartAreas.Add(MsChartHelper.CreateChartArea());
chart.Series[0].BorderWidth = 1;
chart.Series[0].BorderColor = fnBlue;
chart.Series[0].Font = new System.Drawing.Font("Verdana", 7F, System.Drawing.FontStyle.Regular);

chart.ChartAreas[0].AxisY.Minimum = 92;
chart.ChartAreas[0].AxisY.Maximum = 96;
chart.ChartAreas[0].AxisY.Interval = 1;                                  
chart.ChartAreas[0].AxisY.LabelStyle.Font = new System.Drawing.Font("Verdana", 7F, System.Drawing.FontStyle.Regular);

chart.ChartAreas[0].AxisX.LabelStyle.Font = new System.Drawing.Font("Verdana", 7F, System.Drawing.FontStyle.Regular);
chart.ChartAreas[0].AxisX.Interval = 36;
chart.ChartAreas[0].AxisX.IntervalType = DateTimeIntervalType.Days;
chart.ChartAreas[0].AxisX.IsInterlaced = true;
chart.ChartAreas[0].AxisX.InterlacedColor = fnGray;
chart.ChartAreas[0].AxisX.MajorGrid.Enabled = false;

DataPoint min = chart.Series[0].Points.FindMinByValue();
min.MarkerStyle = MarkerStyle.None;
min.IsValueShownAsLabel = true;

DataPoint max = chart.Series[0].Points.FindMaxByValue();
max.MarkerStyle = MarkerStyle.None;
max.IsValueShownAsLabel = true;   

1 个答案:

答案 0 :(得分:4)

好的,最后我想通了,如何实现这一目标。因此,如果出于某种原因某人有同样的问题,那么你就是这样做的:

你的Charttype是Area

chart.Series.Add(MsChartHelper.CreateSeries(chartPlotData, SeriesChartType.Area));

在此之后,您可以添加渐变并设置边框颜色:

chart.Series[0].BackGradientStyle = GradientStyle.TopBottom;
chart.Series[0].Color = Color.FromArgb(125, 110, 110, 110);
chart.Series[0].BackSecondaryColor = Color.FromArgb(0, 255, 255, 255);
chart.Series[0].BorderColor = System.Drawing.ColorTranslator.FromHtml("#AA3131");
chart.Series[0].BorderDashStyle = ChartDashStyle.Solid;
chart.Series[0].BorderWidth = 1;

我希望这会有所帮助:)