Para ver el artículo en inglés, active la casilla Inglés. También puede ver el texto en inglés en una ventana emergente si pasa el puntero del mouse por el texto.
Traducción
Inglés

Elementos de leyenda personalizados en controles Chart

De forma predeterminada, cada elemento de leyenda están enlazado a una serie y sus propiedades son las mismas para todas las series. Puede utilizar elementos de leyenda personalizados que no están enlazados a ninguna serie y que permiten ajustar la apariencia, posición y margen de cada celda. Para ello, utilice la colección de propiedades Legend.CustomItems (un objeto LegendItemCollection ) para agregar un elemento de leyenda personalizado (un objeto LegendItem ) a una leyenda. Los elementos de leyenda de esta colección siempre están adjuntos al final de otros elementos de leyenda de la leyenda.

Los elementos de leyenda de la colección Legend.CustomItems permiten personalizar lo siguiente:

  • Especificar el símbolo mediante la propiedad LegendItem.ImageStyle. Elegir entre el rectángulo, la línea y el marcador.

  • Utilizar las imágenes como símbolos utilizando propiedad LegendItem.MarkerImage o LegendItem.Image.

  • Agregar celdas a la leyenda.

  • Ajustar la apariencia, posición y margen de cada celda.

Para agregar celdas de leyenda (objetos LegendCell) a un elemento de leyenda personalizado, utilice la colección de propiedades LegendItem.Cells (un objeto LegendCellCollection).

Especifique el tipo de celda en la propiedad LegendCell.CellType. Si establece esta propiedad en LegendCellType.SeriesSymbol, la celda de la leyenda usa el símbolo utilizado por el elemento de leyenda contenedor.

Para combinar dos celdas adyacentes en una, con el fin por ejemplo de adaptarla a cadenas largas, utilice la propiedad LegendCell.CellSpan.

Cuando hay por lo menos una celda de leyenda en el elemento de leyenda, las propiedades de apariencia del elemento de leyenda no tienen efecto.

El siguiente código utiliza un elemento de leyenda personalizado en tiempo de ejecución para mostrar la región con la media estadística superior.

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