none
Cambiar color de fondo a un updatepanel RRS feed

  • Pregunta

  • Tengo la siguiente duda, ¿si es posible cambiar el fondo de un updatepanel que tiene una maya de con varios linkbutton...la idea es que pueda el cliente elegir el color de fondo y el color de los linkbutton a su preferencia.?.

    Gracias.

    miércoles, 22 de abril de 2015 18:17

Respuestas

  • Hola, lo que se me ocurre es que utilices variables globales para asignar el color de fondo en RGB. te doy un Ejemplo:

    un form lo tengo así:

    en este formulario configuro cuatro items del app.config   (ColorR, ColorG, ColorB y ColorFondo)

    luego al iniciar la app cargo cuatro variables globales para que tomen esos valores y apartir de esas variables se configuran para recorrer controles.

    un ejemplo de las variables:

        Public colorR As Integer = System.Configuration.ConfigurationManager.AppSettings("colorenfasisR")
        Public colorG As Integer = System.Configuration.ConfigurationManager.AppSettings("colorenfasisG")
        Public colorB As Integer = System.Configuration.ConfigurationManager.AppSettings("colorenfasisB")
        Public fondocolor As String = System.Configuration.ConfigurationManager.AppSettings("fondocolor")
    
        Public Sub colorfondo(ByVal control As Object)
            If (TypeOf (control) Is Form) Then
                If fondocolor = "Claro" Then
                    CType(control, Form).BackColor = Color.FromArgb(200, 200, 200)
                ElseIf fondocolor = "Oscuro" Then
                    CType(control, Form).BackColor = Color.FromArgb(51, 51, 51)
                End If
            End If
    
            If (TypeOf (control) Is Panel) Then
                If fondocolor = "Claro" Then
                    CType(control, Panel).BackColor = Color.FromArgb(200, 200, 200)
                ElseIf fondocolor = "Oscuro" Then
                    CType(control, Panel).BackColor = Color.FromArgb(51, 51, 51)
                End If
            End If
    
            If (TypeOf (control) Is GroupBox) Then
                If fondocolor = "Claro" Then
                    CType(control, GroupBox).BackColor = Color.FromArgb(200, 200, 200)
                ElseIf fondocolor = "Oscuro" Then
                    CType(control, GroupBox).BackColor = Color.FromArgb(51, 51, 51)
                End If
            End If
        End Sub
    
        Public Sub cambiarbotones(ByVal identi As Object)
            Dim colordefondo = Convert.ToString(fondocolor)
            For Each myControl As Control In identi.Controls
                If (TypeOf (myControl) Is Button) Then
                    If colordefondo = "Claro" Then
                        CType(myControl, Button).FlatAppearance.BorderColor = Color.Black
                        CType(myControl, Button).ForeColor = Color.Black
                    ElseIf colordefondo = "Oscuro" Then
                        CType(myControl, Button).FlatAppearance.BorderColor = Color.White
                        CType(myControl, Button).ForeColor = Color.White
                    End If
                    CType(myControl, Button).FlatAppearance.MouseOverBackColor = Color.FromArgb(colorR, colorG, colorB)
                    CType(myControl, Button).FlatAppearance.MouseDownBackColor = Color.FromArgb(colorR, colorG, colorB) ' Le cambio el valor a la propiedad
                End If
                If (TypeOf (myControl) Is CheckBox) Then
                    If colordefondo = "Claro" Then
                        CType(myControl, CheckBox).FlatAppearance.BorderColor = Color.Black
                        CType(myControl, CheckBox).ForeColor = Color.Black
                    ElseIf colordefondo = "Oscuro" Then
                        CType(myControl, CheckBox).FlatAppearance.BorderColor = Color.White
                        CType(myControl, CheckBox).ForeColor = Color.White
                    End If
    
                    CType(myControl, CheckBox).FlatAppearance.MouseOverBackColor = Color.FromArgb(colorR, colorG, colorB)
                    CType(myControl, CheckBox).FlatAppearance.MouseDownBackColor = Color.FromArgb(colorR, colorG, colorB)
                    CType(myControl, CheckBox).FlatAppearance.CheckedBackColor = Color.FromArgb(colorR, colorG, colorB)
                End If
            Next
        End Sub

    luego usarías las variables así:

    cambiar el color de fondo a form1

    colorfondo(Me)

    cambiar color de fondo a un panel dentro del form1

            colorfondo(Me.Panel1)

    cambiar color de botones en el panel1

            cambiarbotones(Me.Panel1)

    cambiar el color de los botones en un GroupBox

            cambiarbotones(Me.Gbox_filtrar)

    lo mismo podrías aplicar a tu necesidad.

    un abrazo

    miércoles, 22 de abril de 2015 22:39
  • Hola caciro,

    Gracias por consultar en los foros. Te comparto esta conversación de los foros en inglés, que plantea lo mismo que tu, el cual cuenta con un ejemplo, espero que te sea útil. :)

    Saludos,

    Karen.

    _________________


    Por favor, recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema.

    Es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.

    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft. Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft.


    miércoles, 22 de abril de 2015 21:05
    Moderador

Todas las respuestas

  • Hola caciro,

    Gracias por consultar en los foros. Te comparto esta conversación de los foros en inglés, que plantea lo mismo que tu, el cual cuenta con un ejemplo, espero que te sea útil. :)

    Saludos,

    Karen.

    _________________


    Por favor, recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema.

    Es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.

    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft. Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft.


    miércoles, 22 de abril de 2015 21:05
    Moderador
  • Hola, lo que se me ocurre es que utilices variables globales para asignar el color de fondo en RGB. te doy un Ejemplo:

    un form lo tengo así:

    en este formulario configuro cuatro items del app.config   (ColorR, ColorG, ColorB y ColorFondo)

    luego al iniciar la app cargo cuatro variables globales para que tomen esos valores y apartir de esas variables se configuran para recorrer controles.

    un ejemplo de las variables:

        Public colorR As Integer = System.Configuration.ConfigurationManager.AppSettings("colorenfasisR")
        Public colorG As Integer = System.Configuration.ConfigurationManager.AppSettings("colorenfasisG")
        Public colorB As Integer = System.Configuration.ConfigurationManager.AppSettings("colorenfasisB")
        Public fondocolor As String = System.Configuration.ConfigurationManager.AppSettings("fondocolor")
    
        Public Sub colorfondo(ByVal control As Object)
            If (TypeOf (control) Is Form) Then
                If fondocolor = "Claro" Then
                    CType(control, Form).BackColor = Color.FromArgb(200, 200, 200)
                ElseIf fondocolor = "Oscuro" Then
                    CType(control, Form).BackColor = Color.FromArgb(51, 51, 51)
                End If
            End If
    
            If (TypeOf (control) Is Panel) Then
                If fondocolor = "Claro" Then
                    CType(control, Panel).BackColor = Color.FromArgb(200, 200, 200)
                ElseIf fondocolor = "Oscuro" Then
                    CType(control, Panel).BackColor = Color.FromArgb(51, 51, 51)
                End If
            End If
    
            If (TypeOf (control) Is GroupBox) Then
                If fondocolor = "Claro" Then
                    CType(control, GroupBox).BackColor = Color.FromArgb(200, 200, 200)
                ElseIf fondocolor = "Oscuro" Then
                    CType(control, GroupBox).BackColor = Color.FromArgb(51, 51, 51)
                End If
            End If
        End Sub
    
        Public Sub cambiarbotones(ByVal identi As Object)
            Dim colordefondo = Convert.ToString(fondocolor)
            For Each myControl As Control In identi.Controls
                If (TypeOf (myControl) Is Button) Then
                    If colordefondo = "Claro" Then
                        CType(myControl, Button).FlatAppearance.BorderColor = Color.Black
                        CType(myControl, Button).ForeColor = Color.Black
                    ElseIf colordefondo = "Oscuro" Then
                        CType(myControl, Button).FlatAppearance.BorderColor = Color.White
                        CType(myControl, Button).ForeColor = Color.White
                    End If
                    CType(myControl, Button).FlatAppearance.MouseOverBackColor = Color.FromArgb(colorR, colorG, colorB)
                    CType(myControl, Button).FlatAppearance.MouseDownBackColor = Color.FromArgb(colorR, colorG, colorB) ' Le cambio el valor a la propiedad
                End If
                If (TypeOf (myControl) Is CheckBox) Then
                    If colordefondo = "Claro" Then
                        CType(myControl, CheckBox).FlatAppearance.BorderColor = Color.Black
                        CType(myControl, CheckBox).ForeColor = Color.Black
                    ElseIf colordefondo = "Oscuro" Then
                        CType(myControl, CheckBox).FlatAppearance.BorderColor = Color.White
                        CType(myControl, CheckBox).ForeColor = Color.White
                    End If
    
                    CType(myControl, CheckBox).FlatAppearance.MouseOverBackColor = Color.FromArgb(colorR, colorG, colorB)
                    CType(myControl, CheckBox).FlatAppearance.MouseDownBackColor = Color.FromArgb(colorR, colorG, colorB)
                    CType(myControl, CheckBox).FlatAppearance.CheckedBackColor = Color.FromArgb(colorR, colorG, colorB)
                End If
            Next
        End Sub

    luego usarías las variables así:

    cambiar el color de fondo a form1

    colorfondo(Me)

    cambiar color de fondo a un panel dentro del form1

            colorfondo(Me.Panel1)

    cambiar color de botones en el panel1

            cambiarbotones(Me.Panel1)

    cambiar el color de los botones en un GroupBox

            cambiarbotones(Me.Gbox_filtrar)

    lo mismo podrías aplicar a tu necesidad.

    un abrazo

    miércoles, 22 de abril de 2015 22:39
  • Gracias Karen...lo revisaré agradezco tu aporte.
    jueves, 23 de abril de 2015 13:22
  •  Gracias Ricardo...Agradezco tu aporte, revisaré el código a ver si me funciona.
    • Editado caciro jueves, 23 de abril de 2015 20:35
    jueves, 23 de abril de 2015 13:23