2

X 軸にカスタム ラベルを使用して C# でグラフを作成しています。スケールは日付であり、選択した値に基づいて変化します (1 か月から 2 年)。それはうまく機能し、スケールの値を変更するたびにチャートの幅は一定のままです。バーの幅を調整するだけです。

ラベルを回転しようとすると問題が発生します。私が行うと、すべてのバーのサイズが異なるスケールごとに異なるサイズに変更され、元のバーと同じ量のスペースを占有することはありません。すべてのサイズを変更せずにラベルを回転できるようにしたい。これはできますか?なぜこうなった?どうすれば修正できますか?

カスタム ラベルを追加するために使用しているコードは次のとおりです。

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 に答える