Alinhar texto girado em C #

Eu preciso ser capaz de girar o texto em um rótulo e alinhá-lo à esquerda, direita ou centro. Até agora, sou capaz de fazer a rotação com esse código no método onPaint do rótulo derivado:

 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();

E isso funciona bem. Eu posso ver o texto girado 270 graus.

Mas quando tento definir o alinhamento no stringFormat, fica louco e não consigo descobrir o que está acontecendo.

Como posso girar o texto em 270 graus e alinhá-lo para cima?

questionAnswers(2)

yourAnswerToTheQuestion