カスタムの凡例項目 (グラフ コントロール)
既定で、凡例項目はそれぞれ 1 つの系列に関連付けられ、プロパティはすべての系列で同じです。どの系列にも関連付けられておらず、すべてのセルの外観、位置、および余白を調整できるカスタムの凡例項目を使用できます。この場合、Legend.CustomItems コレクション プロパティ (LegendItemCollection オブジェクト) を使用し、カスタマイズの凡例項目 (LegendItem オブジェクト) を凡例に追加します。このコレクションの凡例項目は、凡例内で他の凡例項目の末尾に付加されます。
Legend.CustomItems コレクションの凡例項目を使用すると、次のようにカスタマイズできます。
LegendItem.ImageStyle プロパティを使用してシンボルを指定します。四角形、線、およびマーカーから選択できます。
LegendItem.Image プロパティまたは LegendItem.MarkerImage プロパティを使用してイメージをシンボルとして使用します。
凡例にセルを追加します。
各セルの外観、位置、および余白を調整します。
カスタマイズした凡例項目でのセルの使用
凡例のセル (LegendCell オブジェクト) をカスタマイズした凡例項目に追加するには、LegendItem.Cells コレクション プロパティ (LegendCellCollection オブジェクト) を使用します。
LegendCell.CellType プロパティでセルの種類を指定します。このプロパティを LegendCellType.SeriesSymbol に設定すると、凡例のセルには、そのセルを含む凡例項目が使用するシンボルが使用されます。
長い文字列に合わせて調整する場合など、2 つの隣接するセルを 1 つにマージするには、LegendCell.CellSpan プロパティを使用します。
凡例項目に 1 つ以上の凡例セルがある場合、凡例項目の外観プロパティは影響がありません。
次のコードでは、実行時にカスタマイズした凡例項目と凡例セルを使用し、最高の統計平均を持つ地域を表示します。
Dim avgWA As Double = Chart1.DataManipulator.Statistics.Mean("WA")
Dim avgOR As Double = Chart1.DataManipulator.Statistics.Mean("OR")
Dim avgCA As Double = Chart1.DataManipulator.Statistics.Mean("CA")
Dim top As String = (If(avgWA >= avgOR, "Washington", "Oregon"))
If avgCA >= avgWA AndAlso avgCA >= avgOR Then
top = "California"
End If
Dim newItem As New LegendItem()
newItem.ImageStyle = LegendImageStyle.Marker
newItem.MarkerStyle = MarkerStyle.Diamond
newItem.Cells.Add(LegendCellType.SeriesSymbol, "", ContentAlignment.MiddleCenter)
newItem.Cells.Add(LegendCellType.Text, "State Average =", ContentAlignment.MiddleCenter)
newItem.Cells(1).CellSpan = 2
newItem.Cells.Add(LegendCellType.Text, "", ContentAlignment.MiddleCenter)
newItem.Cells.Add(LegendCellType.Text, top, ContentAlignment.MiddleCenter)
Chart1.Legends(0).CustomItems.Add(newItem)
double avgWA = Chart1.DataManipulator.Statistics.Mean("WA");
double avgOR = Chart1.DataManipulator.Statistics.Mean("OR");
double avgCA = Chart1.DataManipulator.Statistics.Mean("CA");
String top = (avgWA >= avgOR ? "Washington":"Oregon");
if (avgCA >= avgWA && avgCA >= avgOR)
top = "California";
LegendItem newItem = new LegendItem();
newItem.ImageStyle = LegendImageStyle.Marker;
newItem.MarkerStyle = MarkerStyle.Diamond;
newItem.Cells.Add(LegendCellType.SeriesSymbol, "", ContentAlignment.MiddleCenter);
newItem.Cells.Add(LegendCellType.Text, "State Average =", ContentAlignment.MiddleCenter);
newItem.Cells[1].CellSpan = 2;
newItem.Cells.Add(LegendCellType.Text, "", ContentAlignment.MiddleCenter);
newItem.Cells.Add(LegendCellType.Text, top, ContentAlignment.MiddleCenter);
Chart1.Legends[0].CustomItems.Add(newItem);
関連項目
参照
System.Windows.Forms.DataVisualization.Charting
System.Web.UI.DataVisualization.Charting