none
Pasar rectángulo Degradado a normal RRS feed

  • Pregunta

  • Buenas no consigo pasar este código de que me pinta un rectángulo degradado a que me lo pinte normal

    '  rgba(255,230,153,1) 0%,rgba(150,45,0,1) 47%,rgba(54,8,10,1) 100%);
                Me.lgb = New LinearGradientBrush(New Rectangle(0, 0, 400, 15), Color.Black, Color.White, LinearGradientMode.Horizontal)
                Dim cb As ColorBlend = New ColorBlend
                'cb.Colors = New Color() {Color.FromArgb(255, 255, 230, 153), Color.FromArgb(255, 150, 45, 0), Color.FromArgb(255, 54, 8, 10)}
                cb.Colors = New Color() {Color0, Color1, Color2}
                cb.Positions = New Single() {0.0!, 0.47!, 1.0!}
                Me.lgb.InterpolationColors = cb

    viernes, 4 de mayo de 2018 8:17

Respuestas

  • Pero cambiando solo a Solidbrush No me funciona 

    Bueno, no es cambiando "solo" a SolidBrush. Obviamente el cambio implica suprimir todos los parametros de configuracion que unicamente eran aplicables al LinearGradientBrush pero no tienen nada que ver con al SolidBrush.

    El SolidBrush tiene UN unico color, y le estas intentando pasar dos colores ademas de pasarle el modo de gradiente, que logicamente no tiene ningun sentido puesto que no existe gradiente en esta brocha, y tampoco necesita el rectangulo porque eso solo se usa para establecer de donde a donde va el gradiente en las brochas con gradiente.

    En resumen, bastaria hacer

    Me.LaBrocha = New SolidBrush(Color.Black)

    O, si es un color conocido, es mejor esto otro:

    Me.LaBrocha = Brushes.Black

    Ojo, fijate que te he cambiado la variable: Ahora es "LaBrocha" en lugar de "lgb". Esto es porque ya no es un LinearGradientBrush sino un SolidBrush. Si quieres una unica variable que valga para las dos cosas, puedes declararla de tipo Brush, que es la clase madre de las otras dos.

    • Marcado como respuesta Diablo_Rojo viernes, 4 de mayo de 2018 18:19
    viernes, 4 de mayo de 2018 13:58

Todas las respuestas

  • Para que lo pinte normal en lugar de degradado, simplemente suprime el LinearGradientBrush y en su lugar utiliza un SolidBrush.

    viernes, 4 de mayo de 2018 11:50
  • Gracias por responder Alberto

    Pero cambiando solo a Solidbrush No me funciona 

    1000 Gracias

    este es el error

    viernes, 4 de mayo de 2018 13:47
  • Pero cambiando solo a Solidbrush No me funciona 

    Bueno, no es cambiando "solo" a SolidBrush. Obviamente el cambio implica suprimir todos los parametros de configuracion que unicamente eran aplicables al LinearGradientBrush pero no tienen nada que ver con al SolidBrush.

    El SolidBrush tiene UN unico color, y le estas intentando pasar dos colores ademas de pasarle el modo de gradiente, que logicamente no tiene ningun sentido puesto que no existe gradiente en esta brocha, y tampoco necesita el rectangulo porque eso solo se usa para establecer de donde a donde va el gradiente en las brochas con gradiente.

    En resumen, bastaria hacer

    Me.LaBrocha = New SolidBrush(Color.Black)

    O, si es un color conocido, es mejor esto otro:

    Me.LaBrocha = Brushes.Black

    Ojo, fijate que te he cambiado la variable: Ahora es "LaBrocha" en lugar de "lgb". Esto es porque ya no es un LinearGradientBrush sino un SolidBrush. Si quieres una unica variable que valga para las dos cosas, puedes declararla de tipo Brush, que es la clase madre de las otras dos.

    • Marcado como respuesta Diablo_Rojo viernes, 4 de mayo de 2018 18:19
    viernes, 4 de mayo de 2018 13:58