2

我正在使用 X 轴上的自定义标签在 C# 中制作图表。刻度以日期为单位,并根据所选值(从一个月到两年)而变化。它工作得很好,每当我改变比例尺的值时,图表的宽度都保持不变;它只是调整条的宽度。

当我尝试旋转标签时会出现问题。当我这样做时,它会在每个不同的比例上以不同的方式调整所有条的大小,并且不会占用与原始条相同的空间。我希望能够在不调整所有大小的情况下旋转标签。我可以这样做吗?为什么会这样?我该如何解决?

我用来添加自定义标签的代码是这样的:

DateTime StartMonthPos = XValues[0];
DateTime EndPos = new DateTime();

if (Time == 6 || Time == 12 || Time == 24)
{
    foreach (DateTime Date in XValues)
    {
        EndPos = Date;

        if (Date.Month != month)
        {
            Chart4.ChartAreas[0].AxisX.CustomLabels.Add(StartMonthPos.ToOADate(), EndPos.ToOADate(), StartMonthPos.ToString("MMMM"), 0, LabelMarkStyle.None);
            StartMonthPos = Date;
        }

        month = Date.Month;
    }

    XAxis.CustomLabels.Add(StartMonthPos.ToOADate(), EndPos.ToOADate(), StartMonthPos.ToString("MMMM"), 0, LabelMarkStyle.None);
}
else
{
    foreach (DateTime Date in XValues)
    {
        EndPos = Date;
        Chart4.ChartAreas[0].AxisX.CustomLabels.Add(StartMonthPos.ToOADate(), EndPos.ToOADate(), StartMonthPos.ToString("M"), 0, LabelMarkStyle.None);
        StartMonthPos = Date;
    }

    XAxis.CustomLabels.Add(StartMonthPos.ToOADate(), EndPos.ToOADate(), StartMonthPos.ToString("M"), 0, LabelMarkStyle.None);
}

如果我在那之后添加这行代码,事情就会变得一团糟:

 Chart4.ChartAreas[0].AxisX.LabelStyle.Angle = 0;

这是有问题的代码之前的图片:

在此处输入图像描述

这是后图:

在此处输入图像描述

4

1 回答 1

2

那篇文章虽然涉及很多 XAML ......

如您所见,仅此行无法获得轮换:

Chart4.ChartAreas[0].AxisX.LabelStyle.Angle = 0;

轮换还有更多内容;)

于 2012-12-31T21:48:03.683 回答