c#chart垂直文本注释

我正在为ac#折线图添加注释。 我想更改文字方向,但看不到任何允许这样做的设置。

RectangleAnnotationannotation = new RectangleAnnotation(); annotation.AnchorDataPoint = chart1.Series[0].Points[x]; annotation.Text = "look an annotation"; annotation.ForeColor = Color.Black; annotation.Font = new Font("Arial", 12); ; annotation.LineWidth = 2; chart1.Annotations.Add(annotation); 

注释正确添加到图形中,矩形和文本从左向右运行。 我想把它定位为上下运行。 有关如何实现这一目标的任何建议?

您无法使用注释库旋转注释。 你必须使用postpaintprepaint 。 这是一个如何使用后期绘制事件的好例子。 希望这可以帮助。 我将包含以下链接中的代码:

 protected void Chart1_PostPaint(object sender, ChartPaintEventArgs e) { if (e.ChartElement is Chart) { // create text to draw String TextToDraw; TextToDraw = "Printed: " + DateTime.Now.ToString("MMM d, yyyy @ h:mm tt"); TextToDraw += " -- Copyright © Steve Wellens"; // get graphics tools Graphics g = e.ChartGraphics.Graphics; Font DrawFont = System.Drawing.SystemFonts.CaptionFont; Brush DrawBrush = Brushes.Black; // see how big the text will be int TxtWidth = (int)g.MeasureString(TextToDraw, DrawFont).Width; int TxtHeight = (int)g.MeasureString(TextToDraw, DrawFont).Height; // where to draw int x = 5; // a few pixels from the left border int y = (int)e.Chart.Height.Value; y = y - TxtHeight - 5; // a few pixels off the bottom // draw the string g.DrawString(TextToDraw, DrawFont, DrawBrush, x, y); } 

}

编辑:我刚刚意识到这个例子实际上并没有旋转文本。 我知道你必须使用这个工具,所以我将尝试使用postpaint旋转文本找到一个例子。

编辑2:啊啊。 就在SO。 基本上你需要使用e.Graphics.RotateTransform(270); 属性(该行将旋转270度)。