c#:在自定义控件中旋转文本

时间:2009-04-21 08:30:45

标签: c# math graphics rotation custom-controls

我试图在标签内旋转一些文字。我有一个cusom标签,可以让我控制文本渲染过程。

protected override void OnPaint ( PaintEventArgs pe )
{
    Graphics g = pe.Graphics;
    g.RotateTransform( angle );

    g.drawString( text );

    g.ResetTransform();
}

我遇到的问题是旋转似乎发生在控制的原点周围,即坐标(0,0)。有没有一种方法允许文本围绕控件的中心而不是oragin旋转?

我知道函数'g.RotateTransform()'所以一个可能的解决方案是旋转文本然后将其转换为控件的中心。如果这是管理工作的唯一方法,那么我是否可以通过一种通用的方式来确保文本位于控件的中心?

由于

1 个答案:

答案 0 :(得分:2)

围绕任意点的旋转通常是该点到原点的平移,然后是旋转和平移。问题可能是在旋转后确定文本的尺寸以相应地将其移回。