[英]MSChart not initializing axis bounds until drawn
我的C#程序中的MSChart以一種特殊的方式運行。 直到繪制完之后,它才會真正初始化其軸的“最大”和“最小”尺寸。 遵守下面的代碼片段。
void drawChart
{
Chart tempChart = new Chart();
Series series1 = new Series();
/* Additional chart setup removed for clarity */
series1.Points.AddXY(0, 4);
series1.Points.AddXY(10, 2);
series1.Points.AddXY(5, 20);
series1.Points.AddXY(8, 9);
series1.Points.AddXY(15, 30);
double max = tempChart.ChartAreas["ChartArea1"].AxisX.Maximum;
Console.WriteLine(max.ToString()); //Output: NaN
MemoryStream theStream = new MemoryStream();
tempChart.SaveImage(theStream, ChartImageFormat.Png);
max = tempChart.ChartAreas["ChartArea1"].AxisX.Maximum;
Console.WriteLine(max.ToString()); //Output: 17
}
如代碼片段所示,當我在程序中運行代碼時,在將其映像寫入MemoryStream
之前, AxisX.Maximum
為NaN,但之后為適當的17。
為什么這樣做,更重要的是,如何強制它初始化AxisX.Maximum
而不寫入流。 我確實希望將其繪制到圖像上,但是我需要在圖表上進行設置,該設置要求在柵格化之前知道自動調整大小范圍。
您可以使用以下命令強制圖表計算軸的最小值和最大值
tempChart.ChartAreas["ChartArea1"].RecalculateAxesScale();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.