0

我正在尝试在标签中旋转一些文本。我有一个自定义标签,它允许我控制文本呈现过程。

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

    g.drawString( text );

    g.ResetTransform();
}

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

我知道函数“g.RotateTransform()”,因此一种可能的解决方案是旋转文本,然后将其翻译到控件的中心。如果这是管理工作的唯一方法,是否有一种通用的方式可以计算转换以确保文本位于控件的中心?

谢谢

4

1 回答 1

2

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

于 2009-04-21T08:36:38.127 回答