none
como cambio el color de un control RRS feed

  • Pregunta

  • estoy utilizando wpf y no se como cambiar el color de los controles de mi formulario

    aca les dejo un estrato de código de lo que e intentado

     Private Sub button_Click(sender As Object, e As RoutedEventArgs) Handles button.Click
            button.Background = Color.FromArgb(r:=123, g:=123, b:=45)
            button.Background = Color.red
        End Sub
    domingo, 12 de junio de 2016 1:12

Respuestas

  • "luis507" preguntó:

    > estoy utilizando wpf y no se como cambiar el color de los controles de mi formulario
    >
    > button.Background = Color.red

    Hola, Luis:

    A la propiedad Background de los controles de Windows Presentation Foundation le tienes que asignar un objeto de la clase System.Windows.Media.Brush o que herede de ella:

        Private Sub button_Click(sender As Object, e As RoutedEventArgs) Handles button.Click
    
            ' Referenciamos un objeto Brush mediante una propiedad
            ' compartida de la clase Brushes, en éste caso para
            ' pintar el fondo del control de rojo.
            '
            Dim br As Brush = Brushes.Red
    
            ' Le asignamos el objeto a la propiedad Background.
            button.Background = br
    
        End Sub

    También le puedes asignar el objeto Brush directamente:

       
    button.Background = Brushes.Red

    ¿Que en lugar de asignarle un color sólido le quieres asignar un degradado lineal? Tendrías que asignarle a la propiedad Background un objeto  LinearGradientBrush, el cual hereda de la clase  System.Windows.Media.Brush:

       
    button.Background = New LinearGradientBrush(Colors.LemonChiffon, Colors.Sienna, 80)

    Un saludo


    Enrique Martínez Montejo
    [MS MVP - Visual Studio y Tecnologías de Desarrollo]

    Nota informativa: La información contenida en este mensaje, así como el código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin garantías de ninguna clase, y no otorga derecho alguno. Usted asume cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o sugerido en el presente mensaje.

    Si esta respuesta le ha resultado útil, recuerde marcarla como satisfactoria.

    Si usas Visual Basic .NET y deseas ser productivo y feliz, se inteligente y activa la instrucción
    Option Strict.


    domingo, 12 de junio de 2016 5:43
    Moderador

Todas las respuestas

  • En WPF (a diferencia de WinForms) la propiedad Background de un Button no es de tipo Color sino de tipo Brush, seguramente por eso no te funciona. Esto no se nota cuando le pones un color en el XAML porque lo convierte automáticamente a Brush, pero si lo intentas hacer desde código la conversión la tienes que hacer tú. Tendrás que construir un New SolidColorBrush y pasarle el color, y después ese Brush ya se lo puedes asignar a la propiedad Background.

    button.Background = New SolidColorBrush(Color.Red)

    También puedes usar alguno de los Brush que vienen "de fábrica", como por ejemplo:

    button.Background = Brushes.Red

    domingo, 12 de junio de 2016 5:34
  • "luis507" preguntó:

    > estoy utilizando wpf y no se como cambiar el color de los controles de mi formulario
    >
    > button.Background = Color.red

    Hola, Luis:

    A la propiedad Background de los controles de Windows Presentation Foundation le tienes que asignar un objeto de la clase System.Windows.Media.Brush o que herede de ella:

        Private Sub button_Click(sender As Object, e As RoutedEventArgs) Handles button.Click
    
            ' Referenciamos un objeto Brush mediante una propiedad
            ' compartida de la clase Brushes, en éste caso para
            ' pintar el fondo del control de rojo.
            '
            Dim br As Brush = Brushes.Red
    
            ' Le asignamos el objeto a la propiedad Background.
            button.Background = br
    
        End Sub

    También le puedes asignar el objeto Brush directamente:

       
    button.Background = Brushes.Red

    ¿Que en lugar de asignarle un color sólido le quieres asignar un degradado lineal? Tendrías que asignarle a la propiedad Background un objeto  LinearGradientBrush, el cual hereda de la clase  System.Windows.Media.Brush:

       
    button.Background = New LinearGradientBrush(Colors.LemonChiffon, Colors.Sienna, 80)

    Un saludo


    Enrique Martínez Montejo
    [MS MVP - Visual Studio y Tecnologías de Desarrollo]

    Nota informativa: La información contenida en este mensaje, así como el código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin garantías de ninguna clase, y no otorga derecho alguno. Usted asume cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o sugerido en el presente mensaje.

    Si esta respuesta le ha resultado útil, recuerde marcarla como satisfactoria.

    Si usas Visual Basic .NET y deseas ser productivo y feliz, se inteligente y activa la instrucción
    Option Strict.


    domingo, 12 de junio de 2016 5:43
    Moderador