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:
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:
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:
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: