次の方法で共有


カスタムの凡例項目 (グラフ コントロール)

既定で、凡例項目はそれぞれ 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

その他の技術情報

凡例