Come si può coulisse il metodo utilizzato per la scrittura di diagonale
-
01-07-2019 - |
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
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
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);