Как можно использовать метод drawString для написания диагонального пути
Я использую c# 2005 я хочу написать строку по диагонали на изображении. Но по умолчанию c# предоставляет возможность писать горизонтально или вертикально.
Как мы пишем по диагонали?
спасибо
5 ответов
сделать графика.rotateTransform перед вызовом drawString. Не забудьте отменить изменение впоследствии, как указывает Фил Райт.
можно использовать 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);
}
такой
У вас есть право..это можно сделать таким образом..Но текст будет написан сверху вниз всегда, и я не уверен, что вы можете изменить его снизу вверх.. ура!--1-->
есть еще один способ нарисовать текст вертикально, который встроен в C#. Нет необходимости в явном преобразовании графики. Можно использовать класс StringFormat. Вот пример кода, который рисует текст вертикально:
StringFormat sf = новый StringFormat(); научная фантастика.FormatFlags = StringFormatFlags.DirectionVertical; е.Графика.DrawString ("моя струна", это.Шрифт, Кисти.Черный, PointF.Пусто, sf);