¿Cómo se puede utilizar el método drawString para escribir en diagonal?
-
01-07-2019 - |
Pregunta
Estoy usando C# 2005. Quiero escribir una cadena en diagonal en la imagen.Pero, de forma predeterminada, C# ofrece la opción de escribir horizontal o verticalmente.
¿Cómo escribimos en diagonal?
Gracias
Solución
hacer un Gráficos.rotateTransform antes de la llamada a drawString.No olvide revertir el cambio después, como señala Phil Wright.
Otros consejos
Puede utilizar RotateTransform y TranslateTransform que están disponibles en la clase Graphics.Debido a que usar DrawString es GDI+, las transformaciones afectan el dibujo.Entonces usa algo como esto...
g.RotateTransform(45f);
g.DrawString("My String"...);
g.RotateTransform(-45f);
¡No olvides revertir el cambio!
Puede utilizar esta función.
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);
}
Como esto
Tienes razón... Se puede hacer de esa manera... PERO el texto siempre se escribirá de arriba a abajo y no estoy seguro de que puedas cambiarlo de abajo hacia arriba...salud
Hay otra forma de dibujar un texto verticalmente que está integrada en C#.No hay necesidad de una transformación gráfica explícita.Puedes usar la clase StringFormat.Aquí hay un código de muestra que dibuja un texto verticalmente:
StringFormat sf = nuevo StringFormat();sf.FormatFlags = StringFormatFlags.DirectionVertical;e.Graphics.DrawString("Mi cadena", this.Font, Brushes.Black, PointF.Empty, sf);