C#图表对齐轴标签

时间:2015-05-27 06:09:23

标签: c# .net charts

我在柱形图中有一些自定义标签(我的一些代码):

        chart.ChartAreas[0].AxisX.IsMarginVisible = true;
        chart.ChartAreas[0].AxisX.LabelStyle.IsEndLabelVisible = true;
        chart.ChartAreas[0].AxisX.LineColor = Color.LightGray;
        chart.ChartAreas[0].AxisX.MajorGrid.LineColor = Color.LightGray;
        chart.ChartAreas[0].AxisX.LabelStyle.Angle = 0;
        chart.ChartAreas[0].AxisX.LabelStyle.Font = new Font("Trebuchet MS", 10);
        chart.ChartAreas[0].AxisX.MajorTickMark.LineColor = Color.LightGray;

        chart.ChartAreas[0].AxisX.Interval = 1;
        chart.ChartAreas[0].AxisX.IntervalType = DateTimeIntervalType.Weeks;
        chart.ChartAreas[0].AxisX.IsLabelAutoFit = true;
        chart.ChartAreas[0].AxisX.LabelStyle.IsEndLabelVisible = false;


        DateTime minDate = DateTime.Parse(dt.Rows[0]["Date"].ToString());
        DateTime maxDate = DateTime.Parse(dt.Rows[dt.Rows.Count - 1]["Date"].ToString());

        for (int i = 0; i < dt.Rows.Count - 1; i++)
        {
            chart.ChartAreas[0].AxisX.CustomLabels.Add(new CustomLabel(minDate.ToOADate(),
                                                                       minDate.AddDays(6).ToOADate(),
                                                                       minDate.ToShortDateString() + "-" + minDate.AddDays(6).ToShortDateString(),
                                                                       0,
                                                                       LabelMarkStyle.None));
            minDate = minDate.AddDays(7);
        }

因为我的自定义标签文字很长minDate.ToShortDateString() + "-" + minDate.AddDays(6).ToShortDateString(),所以它看起来像

enter image description here

如果可以,我如何移动到左轴标记?

1 个答案:

答案 0 :(得分:1)

除了缩短内容以避免任何冗余之外,您可以尝试通过在右侧添加几个空格来欺骗标签格式化程序,然后是non-breaking space然后是\ n。

以下是之前和之后的结果:

enter image description here enter image description here

我使用过这段代码:

  A.AxisX.LabelStyle.Format = "MM.dd.yy";
  A.AxisX.LabelStyle.Format = "MM.dd.yy        " + ((char)160) + "\n";