Comment obtenir des intervalles dynamiques dans les contrôles de graphique Dundas / Microsoft pour Windows Forms?

StackOverflow https://stackoverflow.com/questions/847581

Question

J'utilise le graphique Microsoft Controls pour .NET 3.5 et je suis aux prises avec obtenir le contrôle graphique pour soutenir redimensionnement de la fenêtre et le contrôle.

Je graphiques où la valeur X est dates, et que vous souhaitez le graphique pour afficher le maximum disponible des intervalles / étiquettes sur l'axe du graphique quand je redimensionnez 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 représentés correctement. Cette première étiquette semble être juste (une date en 2008), mais le reste des étiquettes le long de l'axe sont affichés comme une date en 1900 au lieu.

Quelle est la meilleure façon de le faire?

Était-ce utile?

La solution

Pour les dates dans Microsoft Chart Controls vous devez spécifier explicitement les dates minimales pour commencer. Sinon, il faut décembre 1899 29 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 message Création d'un diagramme de Gantt avec les commandes de MS Chart a des informations précieuses sur les contrôles Microsoft graphique.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top