GDI+, picturebox y matrix

23/02/2004 - 09:58 por jordi | Informe spam
Hola!
Tengo hecho un control derivado de un PictureBox que tenia por
caracteristica el poder trabajar con coordenadas mundo, de tal forma que
invertí la posición del eje Y :

Y+
X- X+
Y-

Simplemente definiendo una nueva matriz de transformación que se aplica en
el OnPaint del control antes de dibujar nada. De esta forma el usuario final
del control podia usar los metodos de Graphics sin preocuparse de nada más.
Todo funcionava correctamente hasta que decidí poner texto, el cual apareció
invertido, lo que es realmente un problema.
Alguien se le ocurre como solucionarlo?
Alguien ha hecho algo parecido? como lo ha implementado?
Alguine sabe de algun tutorial avanzado sobre GDI+?

gracias.

jordi
 

Leer las respuestas

#1 A.Poblacion
23/02/2004 - 12:18 | Informe spam
Tendrás que aplicar una rotación al texto. Algo parecido a lo siguiente,
corrigiendo debidamente las coordenadas:
' set the translation point for the graphics object - the new (0,0) location

sngTransformX = 0

sngTransformY = sngControlHeight

' translate the origin used for rotation and drawing

e.Graphics.TranslateTransform(sngTransformX, sngTransformY) ' (0, textwidth)

'set the rotation angle for vertical text

e.Graphics.RotateTransform(180)

' draw the text on the control

e.Graphics.DrawString(labelText, Font, labelForeColorBrush, 0, 0)




"jordi" wrote in message
news:ehYLtte%
Hola!
Tengo hecho un control derivado de un PictureBox que tenia por
caracteristica el poder trabajar con coordenadas mundo, de tal forma que
invertí la posición del eje Y :

Y+
X- X+
Y-

Simplemente definiendo una nueva matriz de transformación que se aplica en
el OnPaint del control antes de dibujar nada. De esta forma el usuario


final
del control podia usar los metodos de Graphics sin preocuparse de nada


más.
Todo funcionava correctamente hasta que decidí poner texto, el cual


apareció
invertido, lo que es realmente un problema.
Alguien se le ocurre como solucionarlo?
Alguien ha hecho algo parecido? como lo ha implementado?
Alguine sabe de algun tutorial avanzado sobre GDI+?

gracias.

jordi


Preguntas similares