在图表winform中更改颜色的问题
Problems with changing colors in chart winform
我有一个勾选复选框的列表。列表中的所有项目都在图表上画成一条线。当我取消选中一个项目时,这个项目必须被画成一条灰线。这种情况也会发生,但列表中的 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);
颜色根据调色板自动分配,除非已明确设置颜色。所以下一个系列会得到释放的颜色。
为避免这种情况,您需要明确设置所有系列的颜色。
您可能希望它设置 DataPoint
的 Color
,而不是整个 Series
。
为此,您只需设置它:
yourDataPoint.Color = Color.Gray;
请注意,这将设置点的颜色和(如果适用)从 上一个 点到它的线。所以第一个点的颜色不会在线段显示..
两种颜色的示例:
Series S = chart1.Series[0];
S.ChartType = SeriesChartType.Line;
S.Color = Color.Fuchsia;
S.Points.AddXY(1, 10); S.Points.AddXY(2, 20);
S.Points.AddXY(3, 60); S.Points.AddXY(4, 10);
DataPoint yourDataPoint = S.Points[2];
yourDataPoint.Color = Color.Gray;
我有一个勾选复选框的列表。列表中的所有项目都在图表上画成一条线。当我取消选中一个项目时,这个项目必须被画成一条灰线。这种情况也会发生,但列表中的 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);
颜色根据调色板自动分配,除非已明确设置颜色。所以下一个系列会得到释放的颜色。
为避免这种情况,您需要明确设置所有系列的颜色。
您可能希望它设置 DataPoint
的 Color
,而不是整个 Series
。
为此,您只需设置它:
yourDataPoint.Color = Color.Gray;
请注意,这将设置点的颜色和(如果适用)从 上一个 点到它的线。所以第一个点的颜色不会在线段显示..
两种颜色的示例:
Series S = chart1.Series[0];
S.ChartType = SeriesChartType.Line;
S.Color = Color.Fuchsia;
S.Points.AddXY(1, 10); S.Points.AddXY(2, 20);
S.Points.AddXY(3, 60); S.Points.AddXY(4, 10);
DataPoint yourDataPoint = S.Points[2];
yourDataPoint.Color = Color.Gray;