Cores

Procurar exemplo. Procurar o exemplo

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

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

Observação

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

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

Observação

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

Uma vez criado, um Color objeto é imutável. As características da cor podem ser obtidas a partir 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 através dos seguintes métodos:

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

Cores nomeadas

A Colors classe define 148 campos públicos estáticos apenas de leitura para cores comuns, como AntiqueWhite, MidnightBlue, e 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 a Color numa representação alternativa:

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

Exemplos

Em XAML, as cores são tipicamente referenciadas usando os seus valores nomeados, ou com hexadecimais:

<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 são tipicamente referenciadas usando os seus valores nomeados, ou com os 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 seguinte 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
};