我正在为c#折线图添加注释。我想更改文字方向,但看不到允许这样做的任何设置。
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);
注释正确添加到图形中,矩形和文本从左向右运行。我想把它定位为上下运行。有关如何实现这一目标的任何建议吗?
答案 0 :(得分:0)
您无法使用注释库旋转注释。您必须使用postpaint
或prepaint
。 Here是如何使用后期绘制事件的一个很好的例子。希望这可以帮助。我将包含以下链接中的代码:
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:Aaah。在{是} here。基本上你需要使用e.Graphics.RotateTransform(270);
属性(该行将旋转270度)。