Benutzerdefinierte Legendenelemente (Diagrammsteuerelemente)

Standardmäßig ist jedes Legendenelement an eine Reihe gebunden, und die Eigenschaften der Legendenelemente sind für alle Reihen gleich. Sie können jedoch auch benutzerdefinierte Legendenelemente verwenden, die an keine Reihe gebunden sind und die Ihnen ermöglichen, die Darstellung, die Position und den Rand jeder Zelle anzupassen. Verwenden Sie hierzu die Legend.CustomItems-Auflistungseigenschaft (ein LegendItemCollection-Objekt), um einer Legende ein benutzerdefiniertes Legendenelement (ein LegendItem-Objekt) hinzuzufügen. Legendenelemente in dieser Auflistung werden immer nach den anderen Legendenelementen in der Legende angefügt.

Legendenelemente in der Legend.CustomItems-Auflistung ermöglichen Ihnen, Folgendes anzupassen:

  • Sie können mit der LegendItem.ImageStyle-Eigenschaft das Symbol festlegen. Wählen Sie zwischen einem Rechteck, einer Linie und einem Marker aus.

  • Sie können mithilfe der LegendItem.Image-Eigenschaft oder der LegendItem.MarkerImage-Eigenschaft Bilder als Symbole verwenden.

  • Sie können der Legende Zellen hinzufügen.

  • Sie können die Darstellung, die Position und den Rand jeder Zelle anpassen.

Verwenden von Zellen in benutzerdefinierten Legendenelementen

Verwenden Sie zum Hinzufügen von Legendenzellen (LegendCell-Objekten) zu einem benutzerdefinierten Legendenelement die LegendItem.Cells-Auflistungseigenschaft (ein LegendCellCollection-Objekt).

Geben Sie in der LegendCell.CellType-Eigenschaft den Zellentyp an. Wenn Sie diese Eigenschaft auf LegendCellType.SeriesSymbol festlegen, verwendet die Legendenzelle das gleiche Symbol wie das Legendenelement, in dem diese enthalten ist.

Um zwei angrenzende Zellen in einer Zelle zusammenzuführen, z. B. um längere Zeichenfolgen zu ermöglichen, verwenden Sie die LegendCell.CellSpan-Eigenschaft.

Wenn mindestens eine Legendenzelle im Legendenelement vorhanden ist, haben die Darstellungseigenschaften des Legendenelements keine Auswirkungen.

Im folgenden Code wird ein benutzerdefiniertes Legendenelement mit Legendenzellen verwendet, um zur Laufzeit den Bereich mit dem höchsten statistischen Durchschnitt anzuzeigen.

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

Siehe auch

Verweis

System.Windows.Forms.DataVisualization.Charting

System.Web.UI.DataVisualization.Charting

Andere Ressourcen

Legenden