За установку цвета фона и текста элементов отвечают свойства BackgroundColor и TextColor
соответственно. В качестве значение они принимают структуру Color
:
Label header = new Label() { Text = "Привет из Xamarin Forms" }; header.HorizontalTextAlignment = TextAlignment.Center; header.VerticalTextAlignment = TextAlignment.Center; header.BackgroundColor = Color.Teal; header.TextColor = Color.Red;
Или в XAML:
<Label Text="Привет из Xamarin Forms" HorizontalTextAlignment="Center" VerticalTextAlignment="Center" BackgroundColor="Blue" TextColor="Yellow" />
Кроме встроенных констант типа Color.Red
также для установки цвета мы можем указать и другие значения, используя структуру
Color. Для этого нам надо передать значение для одной из компонент красного, зеленого, синего цветов, смесь которых даст
финальный цвет. Передаваемое значение имеет тип double и должно находиться в диапазоне от 0.0 до 1.0.
Чтобы передать эти значения, можно использовать один из конструкторов структуры Color:
new Color(double grayShade)
: устанавливает тон серого цвета
new Color(double r, double g, double b)
: устанавливает компоненты красного, зеленого и синего
new Color(double r, double g, double b, double a)
: добавляет еще один параметр - a
, который передает прозрачность
и имеет значение от 0.0 (полностью прозрачный) до 1.0 (не прозрачный)
Использование конструктора:
Label header = new Label() { Text = "Привет из Xamarin Forms" }; header.BackgroundColor = new Color(0.9, 0.9, 0.8); //rgb
Также для установки цвета мы можем использовать ряд статических методов:
Color.FromHex(string hex): возвращает объект Color, созданный по переданному в качестве параметра шестнадцатеричному значению
Color.FromRgb(double r, double g, double b): возвращает объект Color, для которого также устанавливаются компоненты красного, зеленого и синего
Color.FromRgb(int r, int g, int b): аналогичен предыдущей версии метода, только теперь компоненты красного, зеленого и синего имеют целочисленные значения от 0 до 255
Color.FromRgba(double r, double g, double b, double a): добавляет параметр прозрачности со значением от 0.0 (полностью прозрачный) до 1.0 (не прозрачный)
Color.FromRgba(int r, int g, int b, int a): добавляет параметр прозрачности со значением от 0 (полностью прозрачный) до 255 (не прозрачный)
Color.FromHsla(double h, double s, double l, double a): устанавливает последовательно параметры h
(hue - тон цвета), s
(saturation -
насыщенность), l
(luminosity - яркость) и прозрачность.
Например:
Label header = new Label() { Text = "Привет из Xamarin Forms" }; header.TextColor = Color.FromRgba(255, 0, 0, 160);
В xaml мы можем задавать цвет с помощью шестнадцатеричных значений также, как в HTML/CSS:
<Label Text="Привет из Xamarin Forms" BackgroundColor="#a7a7aa" TextColor="Red" />