2008-09-18 10 views

Répondre

7

Est-ce un Graphics.rotateTransform avant l'appel DrawString. Ne pas oublier d'inverser le changement après, comme le souligne Phil Wright.

+0

Vous pouvez avoir Lotsa amusement ajouter une transformation semi-aléatoire pour chaque ligne dans un éditeur de texte :) – leppie

9

Vous pouvez utiliser RotateTransform et TranslateTransform disponibles dans la classe Graphics. Parce que l'utilisation de DrawString est GDI + les transformations affecte le dessin. Donc, utilisez quelque chose comme ça ...

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

N'oubliez pas cependant d'inverser le changement!

-1

Il existe une autre façon de dessiner verticalement un texte construit dans le C#. Il n'y a pas besoin de transformation graphique explicite. Vous pouvez utiliser la classe StringFormat. Voici un exemple de code qui dessine un texte verticalement:

StringFormat sf = new StringFormat(); sf.FormatFlags = StringFormatFlags.DirectionVertical; e.Graphics.DrawString ("Ma chaîne", this.Font, Brushes.Black, PointF.Empty, sf);

0

u ont right..It peut être fait dans ce texte de way..BUT sera écrit de haut en bas toujours et je ne suis pas sûr u peut changer de bas en haut .. acclamations

1

Vous peut utiliser cette fonction.

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

Vous aimez cette

enter image description here

+0

fonctionne comme un charme! Mais comment puis-je déterminer la largeur du texte incliné? par exemple. si j'ai une largeur de chaîne de 50. Après avoir fait tourner le texte, ça prendra moins de largeur ... – prototype0815

Questions connexes