Frage

Ich bin mit c # 2005 möchte ich auf das Bild Zeichenfolge diagonal schreiben. Aber standardmäßig c # bietet die Möglichkeit, horizontal oder vertikal zu schreiben.

, wie wir schreiben diagonal?

Danke

War es hilfreich?

Lösung

Starten Sie eine Graphics.rotateTransform vor der drawString Anruf. Vergessen Sie nicht, die Änderung danach zu umkehren, wie Phil Wright weist darauf hin.

Andere Tipps

Sie können die RotateTransform und verwenden Translatetrans, die auf der Graphics-Klasse zur Verfügung stehen. Da DrawString Verwendung ist GDI + die Transformationen wirkt sich auf die Zeichnung. So etwas wie diese ...

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

Vergessen Sie nicht, wenn die Änderung rückgängig zu machen!

Sie können diese Funktion verwenden.

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

Wie diese

eingeben Bild Beschreibung hier

u haben right..It kann in diesem way..BUT Text erfolgen wird von oben nach unten geschrieben wird immer und ich bin nicht sicher, ob u es von unten .. cheers nach oben ändern

Es gibt einen anderen Weg, um einen Text vertikal zu ziehen, die in der C # gebaut wird. Es besteht keine Notwendigkeit einer expliziten Grafiken Transformation. Sie können die String Klasse. Hier ist ein Beispielcode, der einen Text zieht vertikal:

String sf = new String ();    sf.FormatFlags = StringFormatFlags.DirectionVertical;    e.Graphics.DrawString ( "My String", this.Font, Brushes.Black, PointF.Empty, sf);

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top