2009-05-11 10 views
1

Ich verwende die Microsoft Chart Controls für .NET 3.5 und habe Probleme damit, das Diagramm-Steuerelement zur Unterstützung der Fenster- und Steuerelement-Größenanpassung zu bekommen.Wie erhält man dynamische Intervalle in Dundas/Microsoft Chart Controls für Windows Forms?

Ich habe Graphen, wo der X-Wert Datumsangaben ist, und möchten, dass das Diagramm die maximal verfügbare Anzahl von Intervallen/Labels auf der Diagrammachse anzeigt, wenn ich die Größe des Fensters ändere.

Der nächstgelegene ich gekommen bin ist dies aus dem Voranstrich Ereignis zu nennen:

double interval = chart.Series[0].Points.Count/((double)chart.Width/90); 
foreach (var area in chart.ChartAreas.Where(ca => ca.Visible)) 
{ 
    area.AxisX.Interval = interval; 
} 

Dies macht die Intervalle und Etiketten perfekt entlang der X-Achse passen, aber die Daten werden nicht korrekt dargestellt. Dieses erste Etikett scheint richtig zu sein (ein Datum im Jahr 2008), aber die übrigen Beschriftungen entlang der Achse werden stattdessen als Datum 1900 angezeigt.

Was ist der bevorzugte Weg, dies zu tun?

Antwort

1

Für Daten in Microsoft Chart Controls müssen Sie explizit die Mindestdaten angeben, mit denen Sie beginnen möchten. Sonst dauert es am 29. Dezember 1899 als Ursprung. Sie können wie

Minimal- und max Daten auf Karte gesetzt
chart.ChartAreas[0].AxisY.Minimum = (new DateTime(2010, 5, 1)).ToOADate(); 
chart.ChartAreas[0].AxisY.Maximum = (new DateTime(2011, 4, 1)).ToOADate(); 

Der Beitrag Creating a Gantt Chart with the MS Chart Controls auf Microsoft Chart Controls einige wertvolle Informationen.