C#中的图表垂直文本注释 [英] c# chart vertical text annotation

查看:143
本文介绍了C#中的图表垂直文本注释的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我添加注释到C#线图。我想改变文字的方向,但不能看到任何设置,让这一点。

I'm adding annotations to a c# line chart. I'd like to change the text orientation but can't see any setting to allow this.

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);



注释正确添加到图形和矩形和文字从左到右。我想定向它跑上跑下。如何实现这一目标?

The annotation is added to the graph correctly and the rectangle and text run left to right. I want to orientate it to run up and down. Any suggestions on how to achieve this?

推荐答案

您不能旋转使用注释库的注解。你必须使用 postpaint 预制这里是一个很好的例子如何使用油漆后事件。希望这可以帮助。我会包括以下链接的代码:

You cannot rotate annotations using the annotation library. You have to use postpaint or prepaint. Here is a good example of how to use the post-paint event. Hope this helps. I'll include the code from the link below:

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的旋转文本为例

I just realized this example doesn't actually rotate the text. I know you have to use this tool so I will try to find an example using postpaint that rotates text.

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

EDIT 2: Aaah. Right here at SO. Basically you need to use the e.Graphics.RotateTransform(270); property (that line would rotate 270 degrees).

这篇关于C#中的图表垂直文本注释的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆