Как можно использовать метод drawString для написания диагональным способом
-
01-07-2019 - |
Вопрос
Я использую 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);
}
Вот так
у вас есть право..Это можно сделать таким образом .. НО текст всегда будет написан сверху вниз, и я не уверен, что вы сможете изменить его снизу вверх..ваше здоровье
Существует еще один способ нарисовать текст по вертикали, который встроен в C #.Нет необходимости в явном преобразовании графики.Вы можете использовать класс StringFormat .Вот пример кода, который рисует текст вертикально:
StringFormat sf = новый StringFormat();sf.FormatFlags = StringFormatFlags.Направление вертикальное;e.Графика.Шнурок ("Моя нить", это.Шрифт, кисти.Черный, точечный.Пустой, sf);