Поделиться через


Цвета

Browse sample. Обзор примера

Класс Color в Microsoft.Maui.Graphics пространстве имен позволяет указать цвета в виде значений Red-Green-Blue (RGB), значений Hue-Saturation-Luminosity (HSL), Hue-Saturation-Value (HSV) или с именем цвета. Для обозначения прозрачности также доступен альфа-канал.

Color Объекты можно создавать с Color помощью конструкторов, которые можно использовать для указания серого оттенка, значения RGB или RGB-значения с прозрачностью. Перегрузки конструктора принимают float значения от 0 до 1, byteа также int значения.

Примечание.

Конструктор по умолчанию Color создает черный Color объект.

Для создания Color объектов можно также использовать следующие статические методы:

  • Color.FromRgb от float значений RGB, которые варьируются от 0 до 1.
  • Color.FromRgb от double значений RGB, которые варьируются от 0 до 1.
  • Color.FromRgb от byte значений RGB, которые варьируются от 0 до 255.
  • Color.FromInt от int значений RGB, которые варьируются от 0 до 255.
  • Color.FromRgba от float значений RGBA, которые варьируются от 0 до 1.
  • Color.FromRgba от double значений RGBA, которые варьируются от 0 до 1.
  • Color.FromRgba от byte значений RGBA, которые варьируются от 0 до 255.
  • Color.FromRgba от int значений RGBA, которые варьируются от 0 до 255.
  • Color.FromRgbastringиз шестнадцатеричного значения в виде "#RRGGBBAA" или "#RRGGBB" или "#RGBA" или "#RGB", где каждая буква соответствует шестнадцатеричной цифре для альфа, красного, зеленого и синего каналов.
  • Color.FromHsla из float значений HSLA.
  • Color.FromHsla из double значений HSLA.
  • Color.FromHsv от float значений HSV, которые варьируются от 0 до 1.
  • Color.FromHsv от int значений HSV, которые варьируются от 0 до 255.
  • Color.FromHsva из float значений HSVA.
  • Color.FromHsva из int значений HSV.
  • Color.FromInt из значения, вычисляемого int как (B + 256 * (G + 256 * (R + 256 * A)).
  • Color.FromUint из значения, вычисляемого uint как (B + 256 * (G + 256 * (R + 256 * A)).
  • Color.FromArgbstringиз шестнадцатеричного значения в виде "#AARRGGBB" или "#RRGGBB" или "#ARGB" или "RGB", где каждая буква соответствует шестнадцатеричной цифре для альфа, красного, зеленого и синего каналов.

Примечание.

Помимо методов, перечисленных выше, Color класс также имеет Parse и TryParse методы, которые создают Color объекты из string аргументов.

После создания Color объект неизменяем. Характеристики цвета можно получить из следующих float полей, которые варьируются от 0 до 1:

  • Red, представляющий красный канал цвета.
  • Green, представляющий зеленый канал цвета.
  • Blue, представляющий синий канал цвета.
  • Alpha, представляющий альфа-канал цвета.

Кроме того, характеристики цвета можно получить из следующих методов:

  • GetHue, который возвращает float значение, представляющее канал оттенка цвета.
  • GetSaturation— возвращает float значение, представляющее канал насыщенности цвета.
  • GetLuminosity, который возвращает float значение, представляющее канал светимости цвета.

Именованные цвета

Класс Colors определяет 148 общедоступных статических полей только для чтения для общих цветов, таких как AntiqueWhite, MidnightBlueи YellowGreen.

Изменение цвета

Следующие методы экземпляра изменяют существующий цвет, чтобы создать новый цвет:

  • AddLuminosityColor возвращает значение, добавляя значение светимости в указанное разностное значение.
  • GetComplementary возвращает дополнительное Colorзначение.
  • MultiplyAlpha возвращает значение Color , умножая альфа-значение на указанное float значение.
  • WithAlpha возвращает значение Color, заменяющее альфа-значение указанным float значением.
  • WithHueColorвозвращает значение, заменяющее значение оттенка указанным float значением.
  • WithLuminosityColorвозвращает значение, заменяющее значение светимости указанным float значением.
  • WithSaturationColorвозвращает значение, заменяющее значение насыщенности указанным float значением.

Преобразования

Следующие методы экземпляра преобразуются Color в альтернативное представление:

  • AsPaintSolidPaint возвращает объект, свойство которого Color задано цветом.
  • ToHexвозвращает шестнадцатеричное string представление .Color
  • ToArgbHex возвращает шестнадцатеричное string представление ColorARGB.
  • ToRgbaHex возвращает шестнадцатеричное string представление ColorRGBA.
  • ToInt возвращает представление ARGB int объекта Color.
  • ToUint возвращает представление ARGB uint объекта Color.
  • ToRgb преобразует Color значения RGB byte , возвращаемые в качестве out аргументов.
  • ToRgbaColor преобразует значения RGBAbyte, возвращаемые в качестве out аргументов.
  • ToHsl преобразует Color значения HSL float , передаваемые в качестве out аргументов.

Примеры

В XAML цвета обычно ссылаются с помощью именованных значений или шестнадцатеричных значений:

<Label Text="Sea color"
       TextColor="Aqua" />
<Label Text="RGB"
       TextColor="#00FF00" />
<Label Text="Alpha plus RGB"
       TextColor="#CC00FF00" />
<Label Text="Tiny RGB"
       TextColor="#0F0" />
<Label Text="Tiny Alpha plus RGB"
       TextColor="#C0F0" />

В C#цвета обычно ссылаются с помощью именованных значений или со статическими методами:

Label red    = new Label { Text = "Red",    TextColor = Colors.Red };
Label orange = new Label { Text = "Orange", TextColor = Color.FromHex("FF6A00") };
Label yellow = new Label { Text = "Yellow", TextColor = Color.FromHsla(0.167, 1.0, 0.5, 1.0) };
Label green  = new Label { Text = "Green",  TextColor = Color.FromRgb (38, 127, 0) };
Label blue   = new Label { Text = "Blue",   TextColor = Color.FromRgba(0, 38, 255, 255) };
Label indigo = new Label { Text = "Indigo", TextColor = Color.FromRgb (0, 72, 255) };
Label violet = new Label { Text = "Violet", TextColor = Color.FromHsla(0.82, 1, 0.25, 1) };

В следующем примере используется OnPlatform расширение разметки для выборочного задания цвета ActivityIndicator:

<ActivityIndicator Color="{OnPlatform AliceBlue, iOS=MidnightBlue}"
                   IsRunning="True" />

Эквивалентный код на C# выглядит так:

ActivityIndicator activityIndicator = new ActivityIndicator
{
    Color = DeviceInfo.Platform == DevicePlatform.iOS ? Colors.MidnightBlue : Colors.AliceBlue,
    IsRunning = true
};