2009-09-24 11 views
9

Considérons une méthode du contrôleur ASP.NET MVC qui construit une image graphique ASP.NET.ASP.NET Tableau: définir les polices sur X et l'axe Y

public FileStreamResult MakeImg(IEnumerable<MyObj> stats) 
    { 
     Chart barchart = BarChart(400, 300); 

     Series series1 = new Series("Series1"); 
     series1.ChartArea = "ca1";    
     series1.ChartType = SeriesChartType.Column; 
     series1.IsValueShownAsLabel = true;  
     series1.Font = new Font("Verdana", 9f, FontStyle.Regular); 

     barchart.Series.Add(series1);    

     // Set chart data source 
     barchart.DataSource = stats; 

     // Set series members names for the X and Y values 
     barchart.Series["Series1"].XValueMember = "FriendlyDate"; 
     barchart.Series["Series1"].YValueMembers = "NumRecords"; 

     // Data bind to the selected data source 
     barchart.DataBind(); 

     MemoryStream ms = new MemoryStream(); 
     barchart.SaveImage(ms, ChartImageFormat.Png); 
     ms.Seek(0, SeekOrigin.Begin); 

     return new FileStreamResult(ms, "image/png"); 
    } 

L'image est rendue d'une manière peu attrayante:

fugly http://www.imagechicken.com/uploads/1253830647005451400.png

Question: Comment puis-je définir la police programme pour les:

  • étiquettes des axes X et Y - à savoir de 0 à 35 sur Y, ainsi que les dates X
  • données - c'est-à-dire 12, 0, 0, 3, 6?

Répondre

13
chart.ChartAreas[0].AxisX.LabelStyle.Font 
chart.ChartAreas[0].AxisY.LabelStyle.Font 

est la propriété que vous devez définir la police pour les axes.

0

Un autre problème que je dû faire face était le crénelage sur le texte. Passer de .png à .jpg a fait l'affaire!

+0

De même cela tout lisse pour vous: chart1.AntiAliasing = AntiAliasingStyles.All; – Simon

1

Chart1.ChartAreas [0] = new .AxisX.LabelStyle.Font System.Drawing.Font ("Verdana", 8f); Chart1.ChartAreas [0] = .AxisY.LabelStyle.ForeColor System.Drawing.Color.Red;

Questions connexes