我有一个复选框,允许我的程序启用图表上显示的禁用系列。当我禁用该系列时,它会从chartArea以及图例中删除。即使被禁用,也可以将其保留在图例中吗?我想在图例中更改其透明度,以使其看起来已禁用,并在启用时将其设置回全彩色。

这是我正在寻找的链接:

http://postimage.org/image/kj675p14j/

最佳答案

编辑:

我发现了另一种(更简单)的方法。您可以简单地处理CustomizeLegend事件(并使用series.Enabled禁用系列):

void chart1_CustomizeLegend(object sender, CustomizeLegendEventArgs e)
{
    e.LegendItems.Clear();
    foreach (var series in this.chart1.Series)
    {
        var legendItem = new LegendItem();
        legendItem.SeriesName = series.Name;
        legendItem.ImageStyle = LegendImageStyle.Rectangle;
        legendItem.BorderColor = Color.Transparent;
        legendItem.Name = series.Name + "_legend_item";

        int i = legendItem.Cells.Add(LegendCellType.SeriesSymbol, "", ContentAlignment.MiddleCenter);
        legendItem.Cells.Add(LegendCellType.Text, series.Name, ContentAlignment.MiddleCenter);

        if (series.Enabled)
            legendItem.Color = series.Color;
        else
            legendItem.Color = Color.FromArgb(100, series.Color);
        e.LegendItems.Add(legendItem);
    }
}


结果:

10-06 07:35