我使用的DataVisualization.Charting.Chart很多,而且大部分都在使用.但是,我经常运行代码分析,并自己处理警告.但是,使用图表的*.Designer.cs文件中大约有30个CA2000(未沿所有异常路径布置的对象).Designer文件几乎生成了所有图表代码,几乎所有图表元素都实现了IDisposable.我在项目首选项中选中了"从生成的代码中抑制结果",但它仍然可以.
有没有办法解决这个问题,而不必手动创建图表对象,并且不会禁用该类中其余代码的代码分析?有没有办法为所有.Designer.cs文件禁用它?或者,是否有解决方案通过使设计师代码处理来正确删除这些警告?
我正在写一个Winforms应用程序中使用MS Chart Control.我正在显示的散点图的X轴分量是Int64数据,最终表示UTC时间.我想获取Int64数据并基本上在其上执行DataTime.FromFileTimeUTC(theTime).ToString()以显示有意义的最终用户X轴标签.
目前,我正在内存中的DataTable中创建另一个列来保存与Int64等效的DateTime,如下所示:
dataTable.Columns.Add("mytimestamp");
foreach (DataRow dr in dataTable.Rows)
{
dr["mytimestamp"] = DateTime.FromFileTimeUTC(Convert.ToInt64(dr["theint64val"].ToString()));
}
Run Code Online (Sandbox Code Playgroud)
然后使用"mytimestamp"列作为x轴值.这工作正常,我可以将x轴标签显示为日期时间值.
但是,我宁愿不经历创建列的麻烦,并且基本上复制了其他列的数据,但没有看到任何格式化x轴标签的方法.我猜想可能错过了这个.我在文档中看到了AxisViewChanged事件,并看到了如何使用该数据设置图表标题,而不是x轴标签本身.
有任何想法吗?
有没有一种简单的方法来检索图表区域中任何点的X/Y坐标(当然相对于该图表轴)?
截至目前,我只是设法在鼠标在系列(不在外面)时检索坐标
private void chart_GetToolTipText(object sender, ToolTipEventArgs e)
{
if (e.HitTestResult.Series != null)
{
e.Text = e.HitTestResult.Series.Points[e.HitTestResult.PointIndex].YValues[0] + " \n " + DateTime.FromOADate(e.HitTestResult.Series.Points[e.HitTestResult.PointIndex].XValue);
}
}
Run Code Online (Sandbox Code Playgroud) 我明白那个
只有在进行缩放时才会显示滚动条.换句话说,即使启用了滚动条,它也只会在显示视图时可见.
但是,如何启用图表控件的缩放.我希望这样做是为了避免在将一定数量的值添加到图形后将Axis-Lable分成两列.
我在C#Visual Studio 2010中制作了一些图表,我有一个关于格式化X轴上标签的快速(希望很简单)的问题.我搜索了SO和Google的答案,我很确定它只是简单地为图表区域编辑LabelStyle.Format ...但我无法理解它!好的,太多的信息,让我继续这个问题
简而言之,我的图表需要在x轴上有里程数,范围从0到240,000.我真的想把它修饰一下并且有一个'K'而不是尾随的3个零.示例:60K,120k,180K,240K.
我正在使用MS Chart Control .NET 3.5,WinForms,C#实现散点图.我的x轴数据是DateTime,并注意到我无法放大小于1天的分辨率,尽管设置ScaleView如下:
chart1.ChartAreas["MyChart"].AxisX.ScaleView.MinSize = 4;
chart1.ChartAreas["MyChart"].AxisX.ScaleView.MinSizeType = DateTimeIntervalType.Hours;
Run Code Online (Sandbox Code Playgroud)
其他人遇到过这个问题吗?有任何想法吗?
我在Web项目中使用MSChart控件.我看到有3种不同的存储模式设置:文件/内存/会话.我找不到有关优缺点或设置影响的任何信息.
有人可以帮忙吗?
您好
我试图使用MS Chart控件创建简单的饼图.当我的饼图在浏览器中呈现时,我得到饼图周围的填充,我无法摆脱.我想饼图坐在图像的边缘没有填充或边距.关于我如何实现这一点的任何想法?
在我的代码下面,填充以蓝色突出显示.即Chart1.BackColor = System.Drawing.Color.Blue;
<script type="text/C#" runat="server">
protected void Page_Load(object sender, EventArgs e)
{
//Set the chart type
Chart1.Series["Series1"].ChartType = SeriesChartType.Pie;
//add points
Chart1.Series["Series1"].Points.AddY(12);
Chart1.Series["Series1"].Points.AddY(45);
Chart1.Series["Series1"].Points.AddY(67);
//set back color of chart object
Chart1.BackColor = System.Drawing.Color.Blue;
//set back color of chart area
Chart1.ChartAreas["ChartArea1"].BackColor = System.Drawing.Color.Green;
}
</script>
<asp:Chart ID="Chart1" runat="server">
<Series>
<asp:Series Name="Series1" ChartType="Pie">
</asp:Series>
</Series>
<ChartAreas>
<asp:ChartArea Name="ChartArea1">
</asp:ChartArea>
</ChartAreas>
</asp:Chart>
Run Code Online (Sandbox Code Playgroud) 如果没有图表数据,有没有办法在MS Chart Control上显示"默认"消息?
我有一个图表,有一些控件允许用户选择不同的日期范围.如果在该日期范围内没有要绘制的数据,它目前只显示任何内容(或者至少显示图例和背景,但就是这样.)
我希望有一条消息说"这段时间没有数据"或者其他东西.
谢谢,
本
我一直在网上搜索一段时间但仍然没有找到任何解决我问题的好方法.我想让MS Chart在滚动时自动重新缩放Y轴,以确保所有数据点都可见.这里的转折是我需要能够排除某些系列用于自动缩放.到目前为止,我只找到了解决方案,它们可以在AxisViewChanged事件中迭代整个点集合,当你有大量的点集合和几个迭代的系列时,这种解决方案效果不佳.我想知道是否有办法通过获取当前可见的最小和最大X值之间的数据点来缩小搜索范围.任何帮助,将不胜感激.
编辑 Heres图像.正如您所看到的,中间的烛台并不完全可见.