Когда вы вызываете RotateTransform, вам нужно обратить внимание на то, где заканчивается система координат. Если вы запустите следующий код, «Наклонный текст» появится слева от левого края; так что не видно:
e.Graphics.Clear(SystemColors.Control);
e.Graphics.DrawString("Normal text", this.Font, SystemBrushes.ControlText, 10, 10);
e.Graphics.RotateTransform(90);
e.Graphics.DrawString("Tilted text", this.Font, SystemBrushes.ControlText, 10, 10);
Поскольку вы наклонена поверхность рисования 90 градусов (по часовой стрелке), то у координат теперь будет двигаться по правой/левой оси (с вашей точки зрения), а не вверх/вниз. Более крупные номера находятся дальше влево. Таким образом, чтобы переместить наклоненный текст в видимой части поверхности, вам нужно будет уменьшить координату у:
e.Graphics.Clear(SystemColors.Control);
e.Graphics.DrawString("Normal text", this.Font, SystemBrushes.ControlText, 10, 10);
e.Graphics.RotateTransform(90);
e.Graphics.DrawString("Tilted text", this.Font, SystemBrushes.ControlText, 10, -40);
По умолчанию система координат имеет Origo в верхнем левом углу поверхности, так, чтобы ось, вокруг которой RotateTransform будет вращать поверхность.
Вот изображение, которое иллюстрирует это; черный перед вызовом к RotateTransform, красный после вызова RotateTransform (35):
![Diagram](https://i.stack.imgur.com/iYDmW.png)
Что вы имеете в виду «не работает для OnPaint»? – Lucero
Ты спаситель жизни !!!! Благодаря!!! Для того, чтобы все было ясно, вы можете нарисовать что угодно, не вращаясь, тогда вы вводите: e.Graphics.RotateTransform (90); и все после этого ничьи вращаются. – 2012-07-05 13:16:04