以编程方式将文本添加到带有旋转的表单上

时间:2016-12-24 08:49:51

标签: c# text drawing

我试图找到一种方法将字符串绘制到特定点(X,Y)和旋转角度。这听起来很简单,但我真的很难理解它。

我一直试图找出如何使用束带来做到这一点,但是当我设法让它显示文本时,如果我改变旋转角度,位置也会改变,尽管位置i'告诉它要保持不变。

我现在已经搞乱了一段时间,所以我想知道是否有人可以解释拉绳是如何工作的?请不要给我一大堆代码,我实际上想了解最新情况。

1 个答案:

答案 0 :(得分:1)

正如您已经可以绘制文本一样,我假设您在onpaint处理程序中执行此操作:

所以:

// Copy Graphics object from EventArgs
Graphics g = e.Graphics;
// Save the current Matrix of the Graphics object
var currentMatrix = g.Save();
// Reset the Matrix to Identity matrix
g.Reset();
// Move the text Position to 0/0 
g.TranslateTransform(-textPosition.X, -textPosition.Y);
// Torsten in origin
g.RotateTransform(angle);
// Move Back the drawing point
g.TranslateTransform(textPosition.X, textPosition.Y);
// Draw text
g.DrawString(..);
// restore saved Matrix.
G.Restore(currentMatrix);

Bewahre这是伪代码,必须由你改进。 (我目前在我的手机上)。 我希望我没有误解指令序列。

Merry X-Mas