Работа с цветом

Последнее обновление: 09.01.2021

За установку цвета фона и текста элементов отвечают свойства 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" />
Установка цвета в Xamarin Forms

Кроме встроенных констант типа 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" />
Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850