A quel punto nel tempo è il colore della serie inizializzato in un grafico grafico

Uso Chart per disegnare un grafico con 2 linee. Ora il mio objective è impostare il LineColor della MajorGrid del secondo asse Y sul colore della linea corrispondente. Ecco il mio codice:

 public partial class Form1 : Form { List values_1 = new List(); List values_2 = new List(); public Form1() { InitializeComponent(); make_values(); for (int i = 0; i < values_1.Count; i++) { chart1.Series[0].Points.AddY(values_1[i]); } for (int i = 0; i < values_2.Count; i++) { chart1.Series[1].Points.AddY(values_2[i]); } // set the colour of grid to corresponding line chart1.ChartAreas[0].AxisY2.MajorGrid.LineColor = chart1.Series[1].Color; } private void Form1_Load(object sender, EventArgs e) { } public void make_values() { for (int i = 0; i < 600; i++) { values_1.Add(Math.Sin(i / 60.0)); values_2.Add(Math.Cos(i / 60.0)); } } } 

Dato che i colors sono scelti automaticamente per le 2 diverse serie, ho potuto afferrare il colore. Ma quando eseguo il debug vedo che il colore è (0,0,0):

inserisci la descrizione dell'immagine qui

Quindi il colore della griglia non cambia. Ma il colore della seconda serie non è (0,0,0) come si può vedere quando la finestra è caricata !:

inserisci la descrizione dell'immagine qui

Se forzo e imposta manualmente i colors della serie 2 prima di quello. Tutto funziona bene e la griglia ottiene il colore corrispondente.

Qualcuno sa a che punto in tempo avrei dovuto prendere il colore della serie per ottenere il valore reale?

Per accedere ai Colori serie è necessario chiamare ApplyPaletteColors . Questo è necessario quando vuoi usarli per altri elementi o quando disegni personalizzati. Dovresti anche richiamarlo dopo aver cambiato la tavolozza ..

 chart1.ApplyPaletteColors(); 

MSDN :

Osservazioni

Quando i colors del grafico vengono assegnati automaticamente in fase di esecuzione, non è ansible sapere quali saranno i colors prima del momento in cui il grafico viene visualizzato; la proprietà Color di un valore assegnato automaticamente restituirà Vuoto in questo momento.

Se si chiama il metodo ApplyPaletteColors, verranno impostati i colors per la serie e i punti dati, il che consente l’accesso programmatico.