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); } } }