WinForms.Charting抑制autogenerating传奇(WinForms.Chart

2019-09-23 01:03发布

我现在用的是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);

有没有人做过这样的事情之前?

Answer 1:

尝试在这种情况下做这件事:

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


Answer 2:

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



Answer 3:

我知道这是旧的,但想在这里万一有人想要一个稍微不同的方式去了解它张贴此,这是基于关闭史蒂夫伦斯答案,但不是在它只是删除了非自定义的事件添加的项目。

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

    }


文章来源: WinForms.Charting suppress autogenerating legend