图表控件Chart自适应宽度问题

csl_1022 2014-07-14 10:41:17
最近用Chart做图表,对这个控件不是很熟,这个控件最后是生成一个图片,要设定width(Chart的宽度),后面是根据数据的条数会自动调整宽度(这个宽度是ChartAreas中数据的宽度),但现在的问题是数据的条数是不确定的,条数多的话那正常,少了就会变得很宽。还有就是Chart能不能不设定width,让它根据数据的自动调整。不知道说明白没,请大神指导啊,下面贴出一部分代码:
前台:
<asp:Chart ID="Chart1" runat="server" Height="500px" BorderDashStyle="Solid"
BackSecondaryColor="White" BackGradientStyle="VerticalCenter" BorderWidth="2px"
BackColor="211, 223, 240" BorderColor="#1A3B69" CssClass="chartWidth">
<Legends>
<asp:Legend IsTextAutoFit="False" BackColor="Transparent" TitleAlignment="Center"
Font="Trebuchet MS, 16pt, style=Bold" Docking="Top" Alignment="Near">
</asp:Legend>
</Legends>
<Series>
</Series>
<ChartAreas>
<asp:ChartArea Name="ChartArea1" BorderColor="64, 64, 64, 64" BorderDashStyle="Solid"
BackSecondaryColor="White" BackColor="64, 165, 191, 228" ShadowColor="Transparent"
BackGradientStyle="TopBottom">
<Area3DStyle Rotation="10" Perspective="10" Inclination="15" IsRightAngleAxes="False"
WallWidth="0" IsClustered="False"></Area3DStyle>
<AxisY LineColor="64, 64, 64, 64" Title="得分" TitleAlignment="Center" TitleFont="Microsoft Sans Serif, 16pt,style=Bold"
TextOrientation="Stacked" LabelAutoFitMaxFontSize="15">
<LabelStyle Font="Trebuchet MS, 15pt, style=Bold" />
<MajorGrid LineColor="64, 64, 64, 64" />
</AxisY>
<AxisX LineColor="64, 64, 64, 64" Title="时间" TitleAlignment="Near" TitleFont="Microsoft Sans Serif, 16pt,style=Bold">
<LabelStyle Font="Trebuchet MS, 15pt, style=Bold" />
<MajorGrid LineColor="64, 64, 64, 64" />
</AxisX>
</asp:ChartArea>
</ChartAreas>
<Titles>
<asp:Title Text="(单位:分)" Alignment="TopLeft" Font="Microsoft Sans Serif, 16pt,style=Bold">
</asp:Title>
</Titles>
</asp:Chart>
后台:
Series series = new Series();
series.ChartType = SeriesChartType.Column;
series.BorderWidth = 7;
series.ShadowOffset = 2;
series.Color = System.Drawing.Color.SkyBlue;
//得分
Series series1 = new Series();
series1.ChartType = SeriesChartType.Column;
series1.BorderWidth = 3;
series1.ShadowOffset = 2;
series1.Name = "历史记录";
series1.Color = System.Drawing.Color.YellowGreen;

series1.Points.AddY(Convert.ToInt32(dt.Rows[i]["Score"]));
series1.Points[i].Label = dt.Rows[i]["Score"].ToString();
series1.Points[i].Font = new System.Drawing.Font("宋体", 20);
series1.Points[i].AxisLabel = Convert.ToDateTime(dt.Rows[i]["StopTime"]).ToString("MM月dd日HH点mm分");
series1.Points[0].Color = System.Drawing.Color.SkyBlue;
Chart1.Series.Add(series);
Chart1.Series.Add(series1);
Chart1.ChartAreas[0].AxisX.Interval = 1;
Chart1.ChartAreas[0].AxisX.IntervalOffset = 1;
Chart1.ChartAreas[0].AxisX.LabelStyle.IsStaggered = true;
...全文
3600 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
非凡1943 2014-09-08
  • 打赏
  • 举报
回复
楼主有没有找到解决方案?我这也遇到同样的问题啦。如果解决了跪求告知!万分感谢
纤纤素水 2014-07-14
  • 打赏
  • 举报
回复
不知道 没用过 觉得现在 highcharts echarts这些 好用的多
csl_1022 2014-07-14
  • 打赏
  • 举报
回复
没人回答吗? 唉,我还是根据数据的条数去设置宽度吧 目前也只有这个方法了

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧