在图表winform中更改颜色的问题

时间:2015-05-21 08:27:02

标签: c# winforms charts colors series

我有一个带有选中复选框的列表。列表中的所有项目都作为一条线绘制在图表上。当我取消选中一个项目时,该项目必须绘制为灰色线条。这也会发生,但列表中的NeXT项在灰显之前会获得项目的颜色。无法弄清楚原因。是图表中的东西吗?这是我的代码。

private void listView1_ItemChecked(object sender, ItemCheckedEventArgs e)
{
  if (readyForChangingColor)
  {
     foreach (Series series in chart1.Series)
     {
        if (series.LegendText == e.Item.Text)
        {
           // if unchecked checkbox. Make the line gray
           if (!e.Item.Checked)
           {
              series.Color = System.Drawing.Color.LightGray;
           }
        }
     }
  }
}

//Adding a serie to chart

var NewDataSeries = new System.Windows.Forms.DataVisualization.Charting.Series
{
                Name = "SomeLogData" + Convert.ToString(NumberOfSets),
                IsVisibleInLegend = true,
                IsXValueIndexed = false,
                ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line,
};
// Add the new series to the chart.
this.chart1.Series.Add(NewDataSeries);

2 个答案:

答案 0 :(得分:2)

除非明确设置了颜色,否则将根据调色板自动分配颜色。因此,下一个系列将获得释放的颜色。

为避免这种情况,您需要明确设置所有系列的颜色。

请参阅http://msdn.microsoft.com/en-us/library/system.windows.forms.datavisualization.charting.series.palette(v=vs.110).aspx

答案 1 :(得分:1)

您可能希望它设置Color的{​​{1}},而不是整个DataPoint

为此,您只需设置它:

Series

请注意,这将设置Point的颜色和(如果适用)从上一个点到达它的线。因此第一个点的颜色不会显示在一个线段中。

两种颜色的例子:

   yourDataPoint.Color = Color.Gray;

Line Chart Point Chart