如何始终使用Microsoft Chart Controls显示第一个和最后一个AxisX标签?

时间:2010-07-28 21:19:49

标签: asp.net .net-3.5 c#-3.0 mschart microsoft-chart-controls

我正在使用 Microsoft Chart Controls 开发股票演变图表,我需要在AxisX标签上显示初始和最终日期,但我不能这样做。

我谷歌并发现许多解决方案,如设置属性:

Chart1.ChartAreas[0].AxisX.Minimum = InitialDate.ToOADate();
Chart1.ChartAreas[0].AxisX.Maximum = FinalDate.ToOADate();
Chart1.ChartAreas[0].AxisX.LabelStyle.IsEndLabelVisible = true;

没有任何相同的差异。我需要帮助!

在初始日期下面的样本是2007年7月26日,最终是2010年7月26日,这是我需要在图表标签上显示的,其他日期没有差异,可以在任何显示间隔。

alt text http://img826.imageshack.us/img826/6518/evolucaoinvestimento.png

2 个答案:

答案 0 :(得分:3)

LCharts(iChart).Chart.ChartAreas(0).AxisX.Minimum = MinDate.ToOADate

LCharts(iChart).Chart.ChartAreas(0).AxisX.Maximum = MaxDate.ToOADate

LCharts(iChart).Chart.ChartAreas(0).AxisX.IntervalAutoMode = IntervalAutoMode.VariableCount

'LCharts(iChart).Chart.ChartAreas(0).AxisX.IsMarginVisible = True

LCharts(iChart).Chart.ChartAreas(0).AxisX.LabelStyle.IsEndLabelVisible = True

答案 1 :(得分:2)

我找到了方法:

// get the interval in days
double days = (double)((TimeSpan)(FinalDate - InitialDate)).Days;

// the number os labels
double labels = 10.0;

// check if the number of days is bigger than labels
if (days > labels)
{
    // calculate the interval
    double interval = days / labels;
    Chart1.ChartAreas[0].AxisX.Interval = interval;
}
else
{
    // set the interval of 1 day
    Chart1.ChartAreas[0].AxisX.Interval = 1;
}

结果如下:

chart http://img691.imageshack.us/img691/7796/chartimgca42ufcm.png