C# 文本标签旋转45度

C# 文本标签旋转45度,c#,text,coordinates,C#,Text,Coordinates,我试着做一个简单的例子,通过插入下面的代码,在C#中转换文本标签。。。除此之外,我所做的就是创建一个带有标签label1的表单。这个想法是让拉丝从label1的0,0开始,然后向右上升。 状态为,文本按预期写入,但X、Y坐标不合格。欢迎提出好的建议:-) 问候 新手 e.Graphics.RotateTransform(-45); 您犯的错误是认为这会围绕标签旋转,而实际上它会围绕画布的(0,0)点旋转。您可以通过将画布的(0,0)移动到标签,执行旋转,然后将其移回来解决此问题。像这样 e.G

我试着做一个简单的例子,通过插入下面的代码,在C#中转换文本标签。。。除此之外,我所做的就是创建一个带有标签label1的表单。这个想法是让拉丝从label1的0,0开始,然后向右上升。 状态为,文本按预期写入,但X、Y坐标不合格。欢迎提出好的建议:-)

问候 新手

e.Graphics.RotateTransform(-45);
您犯的错误是认为这会围绕标签旋转,而实际上它会围绕画布的(0,0)点旋转。您可以通过将画布的(0,0)移动到标签,执行旋转,然后将其移回来解决此问题。像这样

e.Graphics.TranslateTransform(drawPoint.X, drawPoint.Y);
e.Graphics.RotateTransform(-45);
e.Graphics.TranslateTransform(-drawPoint.X, -drawPoint.Y);

值得注意的是,这些变换背后的概念来自线性代数。在后台,所有这些方法共同构建一段称为变换矩阵的数据,然后与标签中的每个像素坐标相乘,得到要绘制的实际像素坐标。也许有更精通数学的人可以更深入地解释,但我就到此为止。

谢谢你的回答——这正是我需要的!
e.Graphics.TranslateTransform(drawPoint.X, drawPoint.Y);
e.Graphics.RotateTransform(-45);
e.Graphics.TranslateTransform(-drawPoint.X, -drawPoint.Y);