sábado, 20 de febrero de 2010

UserControls transparentes en WinForms

Aunque esto es pan comido en WPF, en WinForms las transparencias son algo confusas y no hay builtins correctamente diseñados para trabajar con ellas.

Si agregamos un Label sobre una PictureBox y ponemos la propiedad BackColor del Label como transparente… simplemente nada sucede…

image

Una solución a esto es crear nuestro propio control TransparentLabel que herede de Label el código sería algo así.

Public Class TransparentLabel

    Inherits Control

 Protected Overrides ReadOnly Property CreateParams() As System.Windows.Forms.CreateParams

        Get

            'Creamos una instancia de create params

            'a partir de la base y cambiamos su propiedad

            'ExStyle a nulo

            Dim params As CreateParams = MyBase.CreateParams

            params.ExStyle = &H20

            Return params

        End Get

    End Property

 Protected Overrides Sub OnPaintBackground(ByVal pevent As System.Windows.Forms.PaintEventArgs)

        'MyBase.OnPaintBackground(pevent)

        'Con esto anulamos el evento de Paint Background

    End Sub

 Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)

        'Creamos una brocha del color de la fuente original y dibujamos sólo

        'el texto...

        Dim newBrush As SolidBrush = New SolidBrush(ForeColor)

        e.Graphics.DrawString(Text, Font, newBrush, -1, 0)

    End Sub

End Class

Y listo, ya tenemos nuestro propio label transparente.

Pero que pasa cuando tenemos un UserContol sobre la imagen, aunque usemos nuestro TransparentLabel en él, no funcionara ni aún poniendo el fondo del UC como Transparent…

image

Así que hay que modificar el user control así.

Public Class UserControl1

     Protected Overrides ReadOnly Property CreateParams() As System.Windows.Forms.CreateParams

        Get

            Dim params As CreateParams = MyBase.CreateParams

            params.ExStyle = &H20

            Return params

        End Get

    End Property

Protected Overrides Sub OnPaintBackground(ByVal e As System.Windows.Forms.PaintEventArgs)

        'MyBase.OnPaintBackground(e)

    End Sub

 End Class

Y finalmente tenemos ambas cosas, un TransparentLabel y un User Control Transparente también.

image

Esta vez el código en VB porque hay menos ejemplos de VB de esto en la web.

Saludos!

miércoles, 17 de febrero de 2010

Sabiduría de Yahoo Parte 2

Esta bella comunidad sigue iluminando los senderos oscuros de la humanidad, en esta la era de la información.

#1 ¿y puedo estar . con mi periodo aun enbarazada?

image

Hay Cindy, pues con esa ortografía puedes terminar hasta con SIDA por tontuela…le creíste que no pasaba nada jajaja

#2 ¿Existe esa persona verdadera que sea capaz de decir que me ama?

image

Don Daniel, ya se ve usted medio grandecito para pensar en eso, esas niñas que ve en Internet no lo quieren y si sigue usando su tarjeta de crédito para verlas se va a deprimir más.

#3 En que afecta a los pajaros si las vivoras de cascabel se extinguieran?

image

Lo preocupante sobre los pájaros no es la extinción de la víboras, sino lo que le pasaría a muchos pájaros de extinguirse las zorras…

#4 Ví una cucaracha blanca, existe?

image

Paquita vio una vez una rata de dos patas, Silvio Rodríguez veía unicornios, hasta los de risa en vacaciones veían elefantes rosas, una cucaracha blanca? why not! yo me pregunto esta gente nunca habrá escuchado hablar de una pagina que se llama mmm, empieza con w….pero no es muy conocida…mmm wikipedia creo se llama ¬¬

# 5 ¿que es lo peor te a pasado en toda tu vida?

image 

Bueno, si me preguntas a mi pues estoy entre la decapitación de una tía, haber quedado huérfano a los 2 meses, cuando me dejaron en Siberia un mes sin cobijas o quizá Yahoo answers!

Pero bueno quizá yo no he vivido mucho y mi comodina vida urbana a sido poco comparado con estas terribles experiencias…

image

Pobre Nelia, debió sufrir mucho, así como si fuera de película, espeluznante.

image

Esto si está cruel, mira que tener tele nueva y que se te descomponga, que hizo después? como pudo seguir viviendo así? sólo lo confortaba la promesa de la venida de nuestra señora la garantía… =’(

image

Y ps esta muchacha lo peor que le pasó fue no entender las preguntas de Yahoo Answers, esto arroja un IQ de 12, apenas superior al de la cucaracha blanca, aparte de ser emo, mentira pues que Dios no castiga dos veces =’(

Ya me deprimí con estas cosas tan tristes, adiós.

Saludos

martes, 16 de febrero de 2010

Por si me muero…

Ps ya faltan menos de dos años para que se acabe el mundo, pero si me carga el payaso antes ahí les encargo el siguiente epitafio.

programador

Saludos!