Search code examples
c#.netwinformschartsmschart

Highlight one LegendItem in Winforms Chart


As the title suggests I want to hightlight just one LegendItem of a Winforms Chart. (I don't want to change the color of the serie! I just want to change the Color of LegendItem Text or the BackgroundColor of the LegendItem)

I tried the following, but nothing seems to change anything..

LegendItem legendItem = (LegendItem)result.Object;
legendItem.BorderColor = Color.BlueViolet;
legendItem.MarkerColor = Color.BlueViolet;
legendItem.ShadowColor = Color.BlueViolet;
legendItem.Color = Color.BlueViolet;
legendItem.BackSecondaryColor = Color.BlueViolet;
legendItem.BackImageTransparentColor = Color.BlueViolet;
legendItem.MarkerBorderColor = Color.BlueViolet;
legendItem.SeparatorColor = Color.BlueViolet;

Is there a solution for my problem?


Solution

  • You have to handle the CustomizeLegend event:

        private void chart1_CustomizeLegend(object sender, CustomizeLegendEventArgs e)
        {
            foreach (LegendItem li in e.LegendItems)
            {
                if (li.Cells[1].Text == "Series2")
                {
                    li.Cells[1].BackColor = Color.DarkGreen;
                    li.Cells[1].ForeColor = Color.White;
                }
            }
        }
    

    enter image description here