Compartilhar via


Cores

Browse sample. Navegue pelo exemplo

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

Color objetos podem ser criados com construtores, que podem ser usados para especificar um tom cinza, um valor RGB ou um valor RGB com Color transparência. As sobrecargas do construtor aceitam float valores que variam de 0 a 1 bytee 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 valores RGB que variam de float 0 a 1.
  • Color.FromRgb de valores RGB que variam de double 0 a 1.
  • Color.FromRgb de valores RGB que variam de byte 0 a 255.
  • Color.FromInt de valores RGB que variam de int 0 a 255.
  • Color.FromRgba de valores RGBA que variam de float 0 a 1.
  • Color.FromRgba de valores RGBA que variam de double 0 a 1.
  • Color.FromRgba de valores RGBA que variam de byte 0 a 255.
  • Color.FromRgba de valores RGBA que variam de int 0 a 255.
  • Color.FromRgba de um valor hexadecimal baseado na forma "#RRGGBBAA" ou "#RRGGBB" ou "#RGBA" ou "#RGB", onde cada letra corresponde a um stringdígito hexadecimal para os canais alfa, vermelho, verde e azul.
  • Color.FromHsla dos valores de float HSLA.
  • Color.FromHsla dos valores de double HSLA.
  • Color.FromHsv de valores de HSV que variam de float 0 a 1.
  • Color.FromHsv de valores de HSV que variam de int 0 a 255.
  • Color.FromHsva dos valores de float HSVA.
  • Color.FromHsva dos valores de int HSV.
  • Color.FromInt 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 de um valor hexadecimal baseado na forma "#AARRGGBB" ou "#RRGGBB" ou "#ARGB" ou "RGB", onde cada letra corresponde a um stringdígito hexadecimal para os canais alfa, vermelho, verde e azul.

Observação

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

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 a partir 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 públicos estáticos somente leitura para cores comuns, como AntiqueWhite, MidnightBluee YellowGreen.

Modificar uma cor

Os métodos de instância a seguir 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 é definida como a cor.
  • ToHex Retorna uma representação hexadecimal string de um Colorarquivo .
  • ToArgbHex retorna uma representação hexadecimal string ARGB de um Colorarquivo .
  • ToRgbaHex retorna uma representação hexadecimal string RGBA de um Colorarquivo .
  • ToInt retorna uma representação ARGB int de um Colorarquivo .
  • ToUint retorna uma representação ARGB uint de um Colorarquivo .
  • ToRgb converte a Color em valores RGB byte que são retornados como out argumentos.
  • ToRgba converte a Color em valores RGBA byte que são retornados como out argumentos.
  • ToHsl converte a Color em valores HSL float que são passados como out argumentos.

Exemplos

Em XAML, as cores geralmente 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" />

No C#, as cores são normalmente 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 extensão de marcação para definir seletivamente a OnPlatform cor de um ActivityIndicator:

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

Este é o código C# equivalente:

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