Xamarin.Forms Pinceles: Colores sólidos

La clase SolidColorBrush deriva de la clase Brush y se usa para pintar un área con un color sólido. Hay varios enfoques para especificar el color de un SolidColorBrush. Por ejemplo, puedes especificar su color con un valor Color o mediante uno de los objetos SolidColorBrush predefinidos proporcionados por la clase Brush.

La clase SolidColorBrush define la propiedad Color, de tipo Color, que representa el color del pincel. Esta propiedad está respaldada por un objeto BindableProperty, lo que significa que puede ser el destino de los enlaces de datos, y con estilo.

La clase SolidColorBrush también tiene un método IsEmpty que devuelve un bool, que representa si se ha asignado un color al pincel.

Creación de un SolidColorBrush

Hay tres técnicas principales para crear un SolidColorBrush. Puedes crear un SolidColorBrush partir de un Color, usar un pincel predefinido o crear un SolidColorBrush mediante notación hexadecimal.

Uso de un color predefinido

Xamarin.Forms incluye un convertidor de tipos que crea un SolidColorBrush a partir de un valor de Color. En XAML, esto permite crear un objeto SolidColorBrush a partir de un valor Color predefinido:

<Frame Background="DarkBlue"
       BorderColor="LightGray"
       HasShadow="True"
       CornerRadius="12"
       HeightRequest="120"
       WidthRequest="120" />

En este ejemplo, el fondo del Frame se pinta con un SolidColorBrush azul oscuro:

Marco pintado con un color predefinido

Como alternativa, el valor Color se puede especificar mediante la sintaxis de etiquetas de propiedad:

<Frame BorderColor="LightGray"
       HasShadow="True"
       CornerRadius="12"
       HeightRequest="120"
       WidthRequest="120">
       <Frame.Background>
           <SolidColorBrush Color="DarkBlue" />
       </Frame.Background>
</Frame>

En este ejemplo, el fondo del Frame se pinta con un SolidColorBrush cuyo color se especifica estableciendo la propiedad SolidColorBrush.Color.

Uso de un pincel predefinido

La Brush clase define un conjunto de objetos SolidColorBrush usados habitualmente. En el ejemplo siguiente se usa uno de estos objetos SolidColorBrush predefinidos:

<Frame Background="{x:Static Brush.Indigo}"
       BorderColor="LightGray"
       HasShadow="True"
       CornerRadius="12"
       HeightRequest="120"
       WidthRequest="120" />       

El código de C# equivalente es el siguiente:

Frame frame = new Frame
{
    Background = Brush.Indigo,
    BorderColor = Color.LightGray,
    // ...
};

En este ejemplo, el fondo del Frame se pinta con un SolidColorBrush indigo:

Marco pintado con un SolidColorBrush predefinido

Para obtener una lista de objetos SolidColorBrush predefinidos proporcionados por la clase Brush, consulta Pinceles de color sólido.

Uso de la notación hexadecimal

También se pueden crear objetos SolidColorBrush mediante notación hexadecimal. Con este enfoque, se especifica un color en términos de la cantidad de rojo, verde y azul para combinar en un solo color. El formato principal para especificar un color mediante notación hexadecimal es #rrggbb, donde:

  • rr es un número hexadecimal de dos dígitos que especifica la cantidad relativa de rojo.
  • gg es un número hexadecimal de dos dígitos que especifica la cantidad relativa de verde.
  • bb es un número hexadecimal de dos dígitos que especifica la cantidad relativa de azul.

Además, el color se puede especificar como #aarrggbb, donde aa especifica el valor alfa, o la transparencia, del color. Este enfoque le permite crear colores que sean parcialmente transparentes.

En el ejemplo siguiente se establece el valor de color de un SolidColorBrush mediante notación hexadecimal:

<Frame Background="#FF9988"
       BorderColor="LightGray"
       HasShadow="True"
       CornerRadius="12"
       HeightRequest="120"
       WidthRequest="120" />

En este ejemplo, el fondo del Frame se pinta con un SolidColorBrush de color salmón:

Marco pintado con un SolidColorBrush creado mediante notación hexadecimal

Para ver otras formas de describir el color, consulte Colores en Xamarin.Forms.

Pinceles de color sólido

Para mayor comodidad, la clase Brush proporciona un conjunto de objetos SolidColorBrush usados habitualmente, como AliceBlue y YellowGreen. En la imagen siguiente se muestra el color de cada pincel predefinido, su nombre y su valor hexadecimal:

Tabla de colores que incluye una muestra de colores, un nombre de color y un valor hexadecimal