WinForms.Charting抑制自动生成图例

我正在使用System.Windows.Forms.DataVisualization.Charting.Chart类绘制包含一些数据的图表。

现在我想禁止在图例中自动生成条目,并用自定义项替换它们。 我已经找到了添加自定义项目的方法,但无法抑制自动生成。

我的代码:

 var legend = new Legend(); legend.LegendStyle = LegendStyle.Table; legend.TableStyle = LegendTableStyle.Wide; legend.IsEquallySpacedItems = true; legend.IsTextAutoFit = true; legend.BackColor = Color.White; legend.Font = new Font(Config.FontFamily, 9); legend.Docking = Docking.Bottom; legend.Alignment = StringAlignment.Center; legend.CustomItems.Add(new LegendItem("test", Color.Green, string.Empty)); ch.Legends.Add(legend); 

以前有人做过这样的事吗?

尝试在此活动中执行此操作:

 private void chart1_CustomizeLegend(object sender, CustomizeLegendEventArgs e) { e.LegendItems.Clear(); // new stuff } 

转到图表属性中的Series集合,找到IsVisibleInLegend属性并将其设置为false

我知道这已经过时了,但是想发布这个以防万一有人想要一个稍微不同的方式来解决它,这是基于Steve Wellens的答案,但不是在事件中添加项目它只是删除非自定义项目。

  protected void chartarea1_CustomizeLegend(object sender, System.Web.UI.DataVisualization.Charting.CustomizeLegendEventArgs e) { int customItems = ((Chart)sender).Legends[0].CustomItems.Count(); if (customItems>0) { int numberOfAutoItems = e.LegendItems.Count()-customItems; for (int i = 0; i < numberOfAutoItems; i++) { e.LegendItems.RemoveAt(0); } } }