P: ¿Cómo puedo reemplazar la leyenda estándar que muestra título de la serie en mi gráfico con dos leyendas en los dos lados del gráfico?
R: Tiene dos maneras de hacer esto. Una es crear listas separadas con ChartSeries – a ser usadas como datos para las dos leyendas separadas. Aquí está el código:
var firstSeries = new ChartSeriesCollection() { series0, series1 }; var secondSeries = new ChartSeriesCollection() { series2, series3 }; ChartLegend legend1 = new ChartLegend(); legend1.Series = firstSeries; LayoutPanel.SetDock(legend1, Dock.Right); lineChart1.Legends.Add(legend1); ChartLegend legend2 = new ChartLegend(); legend2.Series = secondSeries; LayoutPanel.SetDock(legend2, Dock.Left); lineChart1.Legends.Add(legend2);
La segunda opción es crear dos objetos SeriesLegend para los cuales usted establece las leyendas y brochas a los títulos y trazos de su serie. Aquí está cómo hacerlo:
SeriesLegend legend1 = new SeriesLegend(); legend1.LabelsSource = new List(){series0.Title, series1.Title}; legend1.BrushesSource = new List () { series0.Fills[0], series1.Fills[0] }; LayoutPanel.SetDock(legend1, Dock.Right); lineChart1.Legends.Add(legend1); SeriesLegend legend2 = new SeriesLegend(); legend2.LabelsSource = new List () { series2.Title, series3.Title }; legend2.BrushesSource = new List () { series2.Fills[0], series3.Fills[0] }; LayoutPanel.SetDock(legend2, Dock.Left); lineChart1.Legends.Add(legend2);
Aquí asumimos que ChartSeries tiene su propiedad Title estblecida, y tiene al menos una Brocha añadida a su lista Fills:
LineSeries series1 = new LineSeries(); series1.XData = new List() { 4, 7, 12, 16 }; series1.YData = new List () { 45, 62, 18, 32 }; series1.Fills.Add(Brushes.Orange); series1.Title = "Tokyo"; lineChart1.Series.Add(series1);