Как можно использовать метод drawString для написания диагональным способом

StackOverflow https://stackoverflow.com/questions/91521

Вопрос

Я использую c # 2005, я хочу написать строку по диагонали на изображении.Но по умолчанию c # предоставляет возможность писать горизонтально или вертикально.

как мы пишем по диагонали?

Спасибо

Это было полезно?

Решение

Сделайте Графика.RotateTransform перед последним звонком.Не забудьте впоследствии отменить изменение, как указывает Фил Райт.

Другие советы

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

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

Однако не забудьте отменить изменение!

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

   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

у вас есть право..Это можно сделать таким образом .. НО текст всегда будет написан сверху вниз, и я не уверен, что вы сможете изменить его снизу вверх..ваше здоровье

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

StringFormat sf = новый StringFormat();sf.FormatFlags = StringFormatFlags.Направление вертикальное;e.Графика.Шнурок ("Моя нить", это.Шрифт, кисти.Черный, точечный.Пустой, sf);

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top