Domanda

Sto usando c# 2005 voglio scrivere la stringa in diagonale dell'immagine.Ma di default è c# fornisce l'opzione di scrittura in orizzontale o in verticale.

come possiamo scrivere in diagonale?

Grazie

È stato utile?

Soluzione

Fare un Grafica.rotateTransform prima che il cordone di chiamata.Non dimenticate di invertire la modifica in seguito, come Phil Wright punti.

Altri suggerimenti

È possibile utilizzare il RotateTransform e TranslateTransform che sono disponibili in classe Graphics.Poiché l'utilizzo di un Cordoncino è GDI+ la trasforma riguarda il disegno.Quindi, usare qualcosa come questo...

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

Non dimenticate di invertire la modifica però!

È possibile utilizzare questa funzione.

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

Come questo

enter image description here

hai ragione..può essere fatto in quel modo..MA il testo sarà scritto da cima a fondo, sempre e io non sono sicuro di u può cambiare dal basso verso l'alto..cheers

C'è un altro modo per disegnare un testo in verticale, che è costruito in C#.Non c'è bisogno di una esplicita grafica di trasformazione.È possibile utilizzare il StringFormat classe.Ecco un esempio di codice che disegna un testo in verticale:

StringFormat sf = new StringFormat();sf.FormatFlags = StringFormatFlags.DirectionVertical;e.Grafica.DrawString("la Mia Stringa", questo.Font, Pennelli.Nero, PointF.Vuoto, sf);

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top