3

クラスを使用して、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);

誰かが前にこのようなことをしたことがありますか?

4

3 に答える 3

3

このイベントでやってみてください:

private void chart1_CustomizeLegend(object sender, CustomizeLegendEventArgs e)
{
    e.LegendItems.Clear();
    // new stuff
}
于 2012-09-26T13:59:55.627 に答える
1

私はこれが古いことを知っていますが、誰かがそれについて少し異なる方法を望んでいる場合に備えて、これをここに投稿したいと思いました.

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

    }
于 2014-10-02T22:30:07.593 に答える