대각선 방향으로 쓰기 위해 drawString 메소드를 어떻게 사용할 수 있습니까?
-
01-07-2019 - |
문제
저는 C# 2005를 사용하고 있습니다. 이미지에 대각선으로 문자열을 쓰고 싶습니다.그러나 기본적으로 C#에서는 가로 또는 세로로 쓸 수 있는 옵션을 제공합니다.
대각선으로 어떻게 쓰나요?
감사해요
해결책
하세요 Graphics.rotateTransform drawString 호출 전에.Phil Wright가 지적했듯이 나중에 변경 사항을 되돌리는 것을 잊지 마십시오.
다른 팁
Graphics 클래스에서 사용할 수 있는 RotateTransform 및 TranslateTransform을 사용할 수 있습니다.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.DirectionVertical;e.Graphics.DrawString("내 문자열", this.Font, Brushes.Black, PointF.Empty, sf);