2009-05-11 5 views
1

J'utilise Microsoft Chart Controls pour .NET 3.5 et je rencontre des difficultés pour obtenir le contrôle de graphique pour prendre en charge le redimensionnement des fenêtres et des contrôles.Comment obtenir des intervalles dynamiques dans Dundas/Microsoft Chart Controls pour Windows Forms?

J'ai des graphiques où la valeur X est dates, et je veux que le graphique affiche le maximum disponible des intervalles/étiquettes sur l'axe de la carte lorsque je redimensionne la fenêtre.

Le plus proche que je suis venu est d'appeler cela de l'événement prépeinte:

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

Cela rend les intervalles et les étiquettes intègrent parfaitement le long de l'axe X, mais les dates ne sont pas affichés correctement. Cette première étiquette semble être correcte (une date en 2008), mais le reste des étiquettes le long de l'axe sont affichées comme une date en 1900 à la place.

Quel est le moyen préféré de faire cela?

Répondre

1

Pour les dates dans Microsoft Chart Controls, vous devez spécifier explicitement les dates minimales pour commencer. Autrement, il prend le 29 décembre 1899 comme origine. Vous pouvez définir des dates minimum et maximum sur le graphique comme

chart.ChartAreas[0].AxisY.Minimum = (new DateTime(2010, 5, 1)).ToOADate(); 
chart.ChartAreas[0].AxisY.Maximum = (new DateTime(2011, 4, 1)).ToOADate(); 

Le poste Creating a Gantt Chart with the MS Chart Controls a des informations précieuses sur les contrôles Microsoft Chart.

Questions connexes