我需要能够旋转标签中的文本并将其向左、向右或居中对齐。到目前为止,我可以在派生标签的 onPaint 方法中使用此代码进行旋转:
float width = graphics.MeasureString(Text, this.Font).Width;
float height = graphics.MeasureString(Text, this.Font).Height;
double angle = (_rotationAngle / 180) * Math.PI;
graphics.TranslateTransform(
(ClientRectangle.Width + (float)(height * Math.Sin(angle)) - (float)(width * Math.Cos(angle))) / 2,
(ClientRectangle.Height - (float)(height * Math.Cos(angle)) - (float)(width * Math.Sin(angle))) / 2);
graphics.RotateTransform(270f);
graphics.DrawString(Text, this.Font, textBrush, new PointF(0,0), stringFormat);
graphics.ResetTransform();
它工作正常。我可以看到文字旋转了 270 度。
但是,当我尝试在 stringFormat 中设置对齐方式时,它会发疯,我无法弄清楚发生了什么。
如何将文本旋转 270 度并将其向上对齐?