我有一个带有选中复选框的列表。列表中的所有项目都作为一条线绘制在图表上。当我取消选中一个项目时,该项目必须绘制为灰色线条。这也会发生,但列表中的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);
答案 0 :(得分:2)
除非明确设置了颜色,否则将根据调色板自动分配颜色。因此,下一个系列将获得释放的颜色。
为避免这种情况,您需要明确设置所有系列的颜色。
答案 1 :(得分:1)
您可能希望它设置Color
的{{1}},而不是整个DataPoint
。
为此,您只需设置它:
Series
请注意,这将设置Point的颜色和(如果适用)从上一个点到达它的线。因此第一个点的颜色不会显示在一个线段中。
两种颜色的例子:
yourDataPoint.Color = Color.Gray;