Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
A Color estrutura permite especificar cores como valores de vermelho-verde-azul (RGB), valores de matiz-saturação-luminosidade (HSL), valores de valor de saturação de matiz (HSV) ou com um nome de cor. Um canal Alfa também está disponível para indicar transparência.
Color objetos podem ser criados com os Color construtores, que podem ser usados para especificar um tom de cinza, um valor RGB ou um valor RGB com transparência. Em todos os casos, os argumentos são double valores que variam de 0 a 1.
Você também pode usar métodos estáticos para criar Color objetos:
Color.FromRgbparadoublevalores RGB de 0 a 1.Color.FromRgbpara valores RGB inteiros de 0 a 255.Color.FromRgbaparadoublevalores RGB com transparência.Color.FromRgbapara valores RGB inteiros com transparência.Color.FromHslaparadoublevalores HSL com transparência.Color.FromHsvparadoublevalores de HSV de 0 a 1.Color.FromHsvpara valores inteiros de HSV de 0 a 255.Color.FromHsvaparadoublevalores de HSV com transparência.Color.FromHsvapara valores inteiros HSV com transparência.Color.FromUintpara umuintvalor calculado como (B + 256 * (G + 256 * (R + 256 * A))).Color.FromHexpara umstringformato de dígitos hexadecimais no formato "#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.
Depois de criado, um Color objeto é imutável. As características da cor podem ser obtidas a partir das seguintes propriedades:
R, que representa o canal vermelho da cor.G, que representa o canal verde da cor.B, que representa o canal azul da cor.A, que representa o canal alfa da cor.Hue, que representa o canal de matiz da cor.Saturation, que representa o canal de saturação da cor.Luminosity, que representa o canal de luminosidade da cor.
Todas essas propriedades são valores double que variam de 0 a 1.
Cores nomeadas
A Color estrutura também define 240 campos públicos estáticos somente leitura para cores comuns, como AliceBlue.
Color.Accent
O Color.Accent valor resulta em uma cor específica da plataforma (e às vezes selecionável pelo usuário) que é visível em um plano de fundo escuro ou claro.
Cor.Padrão
O Color.Default valor define a Color com todos os canais definidos como -1 e destina-se a impor o esquema de cores da plataforma. Consequentemente, tem um significado diferente em diferentes contextos em diferentes plataformas. Por padrão, os esquemas de cores da plataforma são:
- iOS: texto escuro em um fundo claro.
- Android: texto escuro em um fundo claro.
- Windows: texto escuro em um fundo claro.
Color.Transparent
O Color.Transparent valor define a Color com todos os canais definidos como zero.
Modificar uma cor
Vários métodos de instância permitem modificar uma cor existente para criar uma nova cor:
AddLuminosityretorna aColormodificando a luminosidade pelo delta fornecido.MultiplyAlpharetorna aColormodificando o alfa, multiplicando-o pelo valor alfa fornecido.ToHexRetorna uma representação hexadecimalstringde umColor.WithHueretorna umColor, substituindo o matiz pelo valor fornecido.WithLuminosityretorna umColor, substituindo a luminosidade pelo valor fornecido.WithSaturationretorna umColor, substituindo a saturação pelo valor fornecido.
Conversões implícitas
A conversão implícita entre os Xamarin.Forms.Color tipos e System.Drawing.Color pode ser executada:
Xamarin.Forms.Color xfColor = Xamarin.Forms.Color.FromRgb(0, 72, 255);
System.Drawing.Color sdColor = System.Drawing.Color.FromArgb(38, 127, 0);
// Implicity convert from a Xamarin.Forms.Color to a System.Drawing.Color
System.Drawing.Color sdColor2 = xfColor;
// Implicitly convert from a System.Drawing.Color to a Xamarin.Forms.Color
Xamarin.Forms.Color xfColor2 = sdColor;
Exemplos
Em XAML, as cores normalmente são referenciadas usando seus valores nomeados ou com suas representações 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" />
Observação
Ao usar a compilação XAML, os nomes de cores não diferenciam maiúsculas de minúsculas e, portanto, podem ser escritos em minúsculas. Para obter mais informações sobre a compilação de XAML, confira Compilação de XAML.
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 = Color.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 iOS=Black, Default=Default}"
IsRunning="True" />
Este é o código C# equivalente:
ActivityIndicator activityIndicator = new ActivityIndicator
{
Color = Device.RuntimePlatform == Device.iOS ? Color.Black : Color.Default,
IsRunning = true
};