自訂圖例項目 (Chart 控制項)
根據預設,每個圖例項目都會繫結至數列,而且其屬性對所有數列都是相同的。您可以使用未繫結至任何數列的自訂圖例項目,調整每個資料格的外觀、位置和邊界。若要這麼做,請使用 Legend.CustomItems 集合屬性 (LegendItemCollection 物件) 將自訂圖例項目 (LegendItem 物件) 加入圖例中。這個集合中的圖例項目永遠會附加至圖例中其他圖例項目的結尾。
Legend.CustomItems 集合中的圖例項目可讓您進行下列自訂作業:
使用 LegendItem.ImageStyle 屬性指定符號。從矩形、線條和標記中選擇。
使用 LegendItem.Image 或 LegendItem.MarkerImage 屬性,將影像做為符號使用。
將資料格加入圖例中。
調整每個資料格的外觀、位置和邊界。
在自訂圖例項目中使用資料格
若要將圖例資料格 (LegendCell 物件) 加入至自訂圖例項目,請使用 LegendItem.Cells 集合屬性 (LegendCellCollection 物件)。
在 LegendCell.CellType 屬性中指定資料格類型。如果您將這個屬性設為 LegendCellType.SeriesSymbol,圖例資料格會使用容器圖例項目所使用的符號。
若要將兩個相鄰資料格合併為一個資料格,例如容納較長的字串,請使用 LegendCell.CellSpan 屬性。
當圖例項目中至少有一個圖例資料格時,圖例項目的外觀屬性沒有任何作用。
下列程式碼在執行階段使用具有圖例資料格的自訂圖例項目,以顯示具有最高統計平均值的區域。
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