Wie können drawString Verfahren zum Schreiben von diagonal Weise verwendet werden,
-
01-07-2019 - |
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
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
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);