はい、できます。ただし、元のLegend
を実際に変更することはできません。したがって、完璧な結果を得るには、代わりに新しいカスタムLegend
を作成する必要があります。
here for an exampleを参照してください。特に注意してください..!
しかし、おそらくあなたは少し簡単に離れていくことができます。下記参照!
最初に理解しなければならないのは、LegendItems
です。常にです。リストの最後に移動します。したがって、あなたが追加したSeries
がにある場合を除いて、それらをまとめておくことはできません。あなたはをSeries.Insert(..)
を使用して行うことができますが、これらの2色の四角形を使用すると、はるかに良いです。
したいグラフィックスを表示するには、単にビットマップなど、いずれかのディスク上またはその場でそれらを作成し、グラフのImages
コレクションに保存:今すぐ
Legend L = chart1.Legends[0];
Series S = chart1.Series[0];
// either load an image from disk (or resources)
Image img = Image.FromFile(someImage);
// or create it on the fly:
Bitmap bmp = new Bitmap(32, 14);
using (Graphics G = Graphics.FromImage(bmp))
{
G.Clear(Color.Red);
G.FillPolygon(Brushes.LimeGreen, new Point[] { new Point(0,0),
new Point(32,0), new Point(0,14)});
}
チャートのNamedImage
コレクションに追加:
chart1.Images.Add(new NamedImage("dia", bmp));
は、今あなたが必要なだけのLegendItems
を作成することができます。
LegendItem newItem = new LegendItem();
newItem.ImageStyle = LegendImageStyle.Rectangle;
newItem.Cells.Add(LegendCellType.Image, "dia", ContentAlignment.MiddleLeft);
newItem.Cells.Add(LegendCellType.Text, S.Name, ContentAlignment.MiddleLeft);
そしてLegend
に追加します:
L.CustomItems.Add(newItem);
残念ながら、あなたは、元の項目を削除することはできません。
は、あなたが何ができるか、最初から新しいLegend
を作成する以外に、このです:
クリアこのようなテキスト:
S.LegendText = " "; // blank, not empty!
あなたがすべてDataPoints
のColors
とにかく設定してきたように
S.Color = Color.Transparent;
これを削除することもできます。また、色が付いていないすべての点を透明にするので、それらをすべて色付けしてください!
一部のスペースがまだ撮られていることに注意してください。ここで
は、いくつかの色の点で、結果であり、あなたのラインシリーズが追加さ:
多くのおかげで、それが助けました! – Konstantin