2008-09-18 2 views

ответ

7

Сделайте Graphics.rotateTransform перед вызовом шнурком. Не забудьте снова изменить это изменение, как указывает Фил Райт.

+0

Вы можете Lotsa весело добавив полу-случайное преобразование для каждой строки в текстовом редакторе :) – leppie 2008-09-18 10:43:42

9

Вы можете использовать RotateTransform и TranslateTransform, которые доступны в классе Graphics. Поскольку использование DrawString - GDI +, преобразования влияют на чертеж. Поэтому используйте что-то вроде этого ...

g.RotateTransform(45f); 
g.DrawString("My String"...); 
g.RotateTransform(-45f); 

Не забудьте изменить изменение, хотя!

-1

Существует еще один способ нарисовать текст по вертикали, который построен на C#. Нет необходимости в явной трансформации графики. Вы можете использовать класс StringFormat. Вот пример кода, который рисует текст по вертикали:

StringFormat sf = new StringFormat(); sf.FormatFlags = StringFormatFlags.DirectionVertical; e.Graphics.DrawString («Моя строка», this.Font, Brushes.Black, PointF.Empty, sf);

0

и есть right..It может быть сделано в этом way..BUT текст будет писаться сверху вниз всегда и я не уверен, и может изменить его снизу вверх .. ура

1

Вы может использовать эту функцию.

void DrawDigonalString(Graphics G, string S, Font F, Brush B, PointF P, int Angle) 
    { 
     SizeF MySize = G.MeasureString(S, F); 
     G.TranslateTransform(P.X + MySize.Width/2, P.Y + MySize.Height/2); 
     G.RotateTransform(Angle); 
     G.DrawString(S, F, B, new PointF(-MySize.Width/2, -MySize.Height/2)); 
     G.RotateTransform(-Angle); 
     G.TranslateTransform(-P.X - MySize.Width/2, -P.Y- MySize.Height/2); 
    } 

Как это

enter image description here

+0

работает как шарм! Но как я могу определить ширину углового текста? например если у меня ширина строки 50. После поворота текста это займет меньше ширины ... – prototype0815 2018-01-05 07:19:04

Смежные вопросы