我正在使用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);
以前有人做过这样的事吗?
答案 0 :(得分:3)
尝试在此活动中执行此操作:
private void chart1_CustomizeLegend(object sender, CustomizeLegendEventArgs e)
{
e.LegendItems.Clear();
// new stuff
}
答案 1 :(得分:1)
转到图表属性中的Series
集合,找到IsVisibleInLegend
属性并将其设置为false
答案 2 :(得分:1)
我知道这已经过时了,但是想在这里发帖,以防万一有人想要一个稍微不同的方式来解决它,这是基于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);
}
}
}