图表控件Chart自适应宽度问题
最近用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;