我在.NET图表系列中有一些问题。我将点数添加到这样的系列
point = new DataPoint();
point.AxisLabel = result.Code;
point.YValues = new double[] { pointValue };
对于值4.0343262175104857E 28,Chart.Saveimage()crashes。
值要么太大或太小,无法用小数。
在system.decimal..ctor(双值) 在System.Web.ui.datavisualization.Charting.Axis.GetRequiredLabelsize(ChartGraphics ChartGraph,Single Maxlabelsize,Single& Resulctize)) 在System.Web.ui.datavisualization.Charting.Axis.Resize(ChartGraphics ChartGraph,elementPosition Chartaraposition,Rectanglef Plotarea,Single Axesnumber,Boolean Autoplotposition) 在system.web.ui.datavisualization.charting.chartarea.resize(ChartGraphics ChartGraph) 在system.web.ui.datavisualization.charting.chartpicture.resize(ChartGraphics ChartGraph,boolean calcareapositionly) 在system.web.ui.datavisualization.charting.chartpicture.paint(图形图,boolean Paintoplevlelementonly)) 在System.Web.ui.Datavisualization.Charting.ChartiMage.getImage(单分辨率) 在system.web.ui.datavisualization.charting.chart.saveimage(stream imagestream)
该值小于小数。如果我使用int.maxvalue。
我的猜测(而且是一个猜测),问题是可能与这里相同/非常相似
看起来这是您从图表中的其他内容中获得的" "冒泡 (即不是直接的Yvalues设置,而是直接的设置到UI。
我猜想这是基于链接的帖子(类似的问题),以及您的 except stack显示UI级调用例如。
System.Web.UI.DataVisualization.Charting.Axis.GetRequiredLabelSize
我唯一的建议没有示例项目/要继续:尝试剥离图表的功能(禁用功能等)直到问题消失。
替代如果图表已经过于嵌入,那将是一个痛苦:制作具有最简单用法的新图表,看看是否给出了相同的例外。
对不起,无济于事。
我认为您的号码实际上可能大于十进制。
在此处请参见Jon Skeet的答案:
https://stackoverflow.com/a/3413791/661584