2016-07-26 10 views
0

Ich verwendeC# build-Diagramm Speichern als Bild ohne repräsentiere

System.Windows.Forms.DataVisualization.Charting.Chart

Referenz- und I Stab ein Diagramm ohne Diagrammelement zu bauen, in Meine Winform-Benutzeroberfläche, ich möchte nur ein Diagramm mit Code erstellen und es als Bild speichern. aber nach dem Code läuft habe ich und leeres Bild gespeichert. mein Code:

Chart ch = new Chart(); 
    ch.Series.Add("tt"); 
    ch.Series["tt"].Points.AddXY(1, 10); 
    ch.Series["tt"].Points[0].SetValueY(4); 
    string path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "savedImg.jpg"); 
    ch.SaveImage(path, ChartImageFormat.Jpeg); 

und hier ist die Ausgabe: enter image description here

mir bitte helfen.

+0

Sieht so aus, als müssten Sie möglicherweise auch einen Diagrammbereich hinzufügen. Gerade aufgerufen, bevor Sie Ihre Serie hinzufügen ch.ChartAreas.Add (new ChartArea()); Wenn Sie möchten, dass eine Legende angezeigt wird, müssen Sie diese auch manuell hinzufügen. ch.Legends.Add (neue Legende()); Wenn Sie einem WinForm ein Diagramm-Steuerelement hinzufügen, wird auf dieses gesamte Handbuch in der Designer-Datei geachtet. Wenn Sie ein Diagramm grammatikalisch erstellen, müssen Sie das manuell erledigen. – Bearcat9425

+0

@ Bearcat9425 Vielen Dank. gelöst durch das Hinzufügen dieser beiden Zeilen, noch einmal vielen Dank, Sie haben meinen Tag gerettet –

+0

Ich bin froh, dass ich helfen konnte. – Bearcat9425

Antwort

1

Sie müssen Ihr Diagramm manuell einrichten, wenn Sie selbst ein Diagrammsteuerelement erstellen. Dinge wie Legenden und Titel von Diagrammbereichen usw. werden im Hintergrund durch Designer hinzugefügt. Beim Erstellen von Code müssen Sie alle Details selbst festlegen. Ich habe diesen Code getestet und erzeugt ein Bild des Diagramms.

Chart ch = new Chart(); 
// Edit for your Chart Title 
ch.Titles.Add(new Title("chart For Saving")); 
// To display your tt series on the legend 
ch.Legends.Add(new Legend()); 
ch.ChartAreas.Add(new ChartArea()); 
ch.Series.Add("tt"); 
ch.Series["tt"].Points.AddXY(1, 10); 
ch.Series["tt"].Points[0].SetValueY(4); 
string path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "savedImg.jpg"); 
ch.SaveImage(path, ChartImageFormat.Jpeg);