대각선 방향으로 쓰기 위해 drawString 메소드를 어떻게 사용할 수 있습니까?

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

문제

저는 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);
   }

이와 같이

enter image description here

당신 말이 맞아요..그런 식으로 할 수 있습니다..하지만 텍스트는 항상 위에서 아래로 쓰여지며 아래에서 위로 변경할 수 있는지 잘 모르겠습니다..건배

C#으로 작성된 텍스트를 세로로 그리는 또 다른 방법이 있습니다.명시적인 그래픽 변환이 필요하지 않습니다.StringFormat 클래스를 사용할 수 있습니다.다음은 텍스트를 세로로 그리는 샘플 코드입니다.

StringFormat sf = 새로운 StringFormat();sf.FormatFlags = StringFormatFlags.DirectionVertical;e.Graphics.DrawString("내 문자열", this.Font, Brushes.Black, PointF.Empty, sf);

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top