Cores
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 byte
e int
valores.
Você também pode usar os seguintes métodos estáticos para criar Color objetos:
Color.FromRgb
de valores RGB que variam defloat
0 a 1.Color.FromRgb
de valores RGB que variam dedouble
0 a 1.Color.FromRgb
de valores RGB que variam debyte
0 a 255.Color.FromInt
de valores RGB que variam deint
0 a 255.Color.FromRgba
de valores RGBA que variam defloat
0 a 1.Color.FromRgba
de valores RGBA que variam dedouble
0 a 1.Color.FromRgba
de valores RGBA que variam debyte
0 a 255.Color.FromRgba
de valores RGBA que variam deint
0 a 255.Color.FromRgba
de um valor hexadecimal baseado na forma "#RRGGBBAA" ou "#RRGGBB" ou "#RGBA" ou "#RGB", onde cada letra corresponde a umstring
dígito hexadecimal para os canais alfa, vermelho, verde e azul.Color.FromHsla
dos valores defloat
HSLA.Color.FromHsla
dos valores dedouble
HSLA.Color.FromHsv
de valores de HSV que variam defloat
0 a 1.Color.FromHsv
de valores de HSV que variam deint
0 a 255.Color.FromHsva
dos valores defloat
HSVA.Color.FromHsva
dos valores deint
HSV.Color.FromInt
de umint
valor calculado como (B + 256 * (G + 256 * (R + 256 * A))).Color.FromUint
a partir de umuint
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 umstring
dí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
, MidnightBlue
e YellowGreen
.
Modificar uma cor
Os métodos de instância a seguir modificam uma cor existente para criar uma nova cor:
- AddLuminosity retorna a Color adicionando o valor de luminosidade ao valor delta fornecido.
- GetComplementary retorna o complementar Color.
- MultiplyAlpha retorna a Color multiplicando o valor alfa pelo valor fornecido
float
. - WithAlpha Retorna um Color, substituindo o valor alfa pelo valor fornecido
float
. - WithHue retorna um Color, substituindo o valor de matiz pelo valor fornecido
float
. - WithLuminosity retorna um Color, substituindo o valor de luminosidade pelo valor fornecido
float
. - WithSaturation retorna um Color, substituindo o valor de saturação pelo valor fornecido
float
.
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 comoout
argumentos. - ToRgba converte a Color em valores RGBA
byte
que são retornados comoout
argumentos. - ToHsl converte a Color em valores HSL
float
que são passados comoout
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
};