1
C# 프로그램의 MSChart가 특이한 방식으로 작동합니다. 축이 그릴 때까지 초기화 된 축의 최대 크기 및 최소 크기를 실제로 가지지는 않습니다. 아래의 코드 스 니펫을 관찰하십시오. 내 프로그램에서 코드를 실행할 때, 스 니펫에 나타낸 바와 같이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
}
는 AxisX.Maximum
내가 MemoryStream
로의 이미지를 작성하기 전에 NaN이 였지만, 이후 적절한 (17).
왜 이렇게하고 더 중요한지, 어떻게 스트림에 쓰지 않고도 AxisX.Maximum
을 초기화하도록 강제 할 수 있습니까? 이미지에 그려 지길 원하지만 래스터 화되기 전에 자동 크기 조정 경계를 알아야하는 차트에서 설정을해야합니다.