Cores

Visualizar amostra. Visualizar a amostra

A Color classe, no Microsoft.Maui.Graphics namespace, permite especificar cores como valores RGB (Red-Green-Blue), valores HSL (Hue-Saturation-Luminosity), valores HSV (Hue-Saturation-Value) ou com um nome de cor. Um canal Alfa também está disponível para indicar transparência.

Color os objetos podem ser criados com Color construtores, que podem ser usados para especificar um tom cinza, um valor RGB ou um valor RGB com transparência. As sobrecargas do construtor aceitam float valores que variam de 0 a 1, byte e int valores.

Observação

O construtor padrão Color cria um objeto preto Color .

Você também pode usar os seguintes métodos estáticos para criar Color objetos:

  • Color.FromRgb de float valores RGB que variam de 0 a 1.
  • Color.FromRgb a partir de valores RGB de double que variam de 0 a 1.
  • Color.FromRgb de byte valores RGB que variam de 0 a 255.
  • Color.FromInt de int valores RGB que variam de 0 a 255.
  • Color.FromRgba de float valores RGBA que variam de 0 a 1.
  • Color.FromRgba de double valores RGBA que variam de 0 a 1.
  • Color.FromRgba de byte valores RGBA que variam de 0 a 255.
  • Color.FromRgba de int valores RGBA que variam de 0 a 255.
  • Color.FromRgba de um valor hexadecimal na forma "#RRGGBBAA" ou "#RRGGBB" ou "#RGBA" ou "#RGB", em que cada letra corresponde a um dígito hexadecimal para os canais alfa, vermelho, verde e azul.
  • Color.FromHsla a partir de float valores HSLA.
  • Color.FromHsla de double valores HSLA.
  • Color.FromHsv de float valores de HSV que variam de 0 a 1.
  • Color.FromHsv a partir de valores HSV int que variam de 0 a 255.
  • Color.FromHsva de float valores HSVA.
  • Color.FromHsva de int valores HSV.
  • Color.FromInt de um int valor calculado como (B + 256 * (G + 256 * (R + 256 * A))).
  • Color.FromUint de um uint valor calculado como (B + 256 * (G + 256 * (R + 256 * A))).
  • Color.FromArgb de um stringvalor hexadecimal baseado na forma "#AARRGGBB" ou "#RRGGBB" ou "#ARGB" ou "RGB", em que cada letra corresponde a um dígito hexadecimal para os canais alfa, vermelho, verde e azul.

Observação

Além dos métodos listados acima, a Color classe também tem Parse e TryParse métodos que criam Color objetos a partir de string argumentos.

Uma vez criado, um Color objeto é imutável. As características da cor podem ser obtidas dos seguintes float campos, que variam de 0 a 1:

  • Red, que representa o canal vermelho da cor.
  • Green, que representa o canal verde da cor.
  • Blue, que representa o canal azul da cor.
  • Alpha, que representa o canal alfa da cor.

Além disso, as características da cor podem ser obtidas dos seguintes métodos:

  • GetHue, que retorna um float que representa o canal de matiz da cor.
  • GetSaturation, que retorna um float que representa o canal de saturação da cor.
  • GetLuminosity, que retorna um float que representa o canal de luminosidade da cor.

Cores nomeadas

A Colors classe define 148 campos somente leitura estáticos públicos para cores comuns, como AntiqueWhite, MidnightBluee YellowGreen.

Modificar uma cor

Os seguintes métodos de instância modificam uma cor existente para criar uma nova cor:

Conversões

Os seguintes métodos de instância convertem um Color em uma representação alternativa:

  • AsPaint retorna um SolidPaint objeto cuja Color propriedade está definida como a cor.
  • ToHex retorna uma representação hexadecimal string de um Color.
  • ToArgbHex retorna uma representação ARGB em hexadecimal string de um Color.
  • ToRgbaHex retorna uma representação RGBA hexadecimal string de um Color.
  • ToInt retorna uma representação ARGB int de um Color.
  • ToUint retorna uma representação ARGB uint de um Color.
  • ToRgb converte um Color em valores de RGB byte, que são retornados como argumentos out.
  • ToRgba converte um Color em valores RGBA byte que são retornados como argumentos out.
  • ToHsl converte Color em valores HSL float que são passados como argumentos out.

Exemplos

No XAML, as cores normalmente são referenciadas usando seus valores nomeados ou com hexadecimal:

<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" />

Em C#, as cores normalmente são referenciadas usando seus valores nomeados ou com seus métodos estáticos:

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) };

O exemplo a seguir usa a OnPlatform extensão de marcação para definir seletivamente a cor de um ActivityIndicator:

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

O código C# equivalente é:

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