2008-09-18 11 views

Antwort

7

ein Graphics.rotateTransform vor dem drawString Telefonieren. Vergessen Sie nicht, die Änderung anschließend rückgängig zu machen, wie Phil Wright darauf hinweist.

+0

Sie lotsa Spaß Hinzufügen einer semistochastische Transformation für jede Zeile in einem Texteditor :) – leppie

9

Sie können die in der Graphics-Klasse verfügbaren Funktionen RotateTransform und TranslateTransform verwenden. Da die Verwendung von DrawString GDI + ist, wirkt sich die Transformation auf die Zeichnung aus. Verwenden Sie also so etwas ...

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

Vergessen Sie nicht, die Änderung jedoch umzukehren!

-1

Es gibt eine andere Möglichkeit, einen Text vertikal zu zeichnen, der in C# erstellt wird. Eine explizite Grafikumwandlung ist nicht erforderlich. Sie können die StringFormat-Klasse verwenden. Hier ist ein Beispielcode, der einen Text vertikal zeichnet:

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

0

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

1

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

Like this

enter image description here

+0

funktioniert wie ein Charme haben kann! Aber wie kann ich die Breite des gewinkelten Textes bestimmen? z.B. wenn ich eine Saitenbreite von 50 habe. Nach dem Drehen des Textes wird es weniger Breite nehmen ... – prototype0815