c# - valor - ¿Cómo se puede usar el método drawString para escribir en diagonal?
mostrar texto en label c# (5)
Estoy usando c # 2005 quiero escribir una cadena en diagonal en la imagen. Pero de forma predeterminada, c # brinda la opción de escribir horizontal o verticalmente.
¿Cómo escribimos diagonalmente?
Gracias
Haz un Graphics.rotateTransform antes de llamar a drawString. No olvide invertir el cambio después, como señala Phil Wright.
Puede usar el RotateTransform y el TranslateTransform que están disponibles en la clase Graphics. Como 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 olvide revertir el cambio!
Hay otra forma de dibujar un texto verticalmente construido en C #. No hay necesidad de transformación explícita de gráficos. Puede usar la clase StringFormat. Aquí hay un código de muestra que dibuja un texto verticalmente:
StringFormat sf = new StringFormat (); sf.FormatFlags = StringFormatFlags.DirectionVertical; e.Graphics.DrawString ("Mi cadena", this.Font, Brushes.Black, PointF.Empty, sf);
tienes derecho ... Se puede hacer de esa manera ... PERO el texto estará escrito de arriba a abajo siempre y no estoy seguro de poder cambiarlo de abajo hacia arriba .. aplausos
Puedes usar 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);
}
Me gusta esto