Colores

Examinar ejemplo. Examinar el ejemplo

La Color clase, en el Microsoft.Maui.Graphics espacio de nombres, le permite especificar colores como valores rojo-verde-azul (RGB), valores de matiz-saturación-luminosidad (HSL), valores de matiz-saturación-valor (HSV) o usando un nombre de color. Un canal Alfa también está disponible para indicar la transparencia.

Color Los objetos se pueden crear con Color constructores, que se pueden usar para especificar un tono gris, un valor RGB o un valor RGB con transparencia. Las sobrecargas del constructor aceptan float valores comprendidos entre 0 y 1, bytey int .

Nota:

El constructor predeterminado Color crea un objeto negro Color .

También puede usar los siguientes métodos estáticos para crear Color objetos:

  • Color.FromRgb a partir de float valores RGB que van desde 0 hasta 1.
  • Color.FromRgb de double valores RGB que van de 0 a 1.
  • Color.FromRgb de byte valores RGB que van de 0 a 255.
  • Color.FromInt a partir de int valores RGB que van de 0 a 255.
  • Color.FromRgba de float valores RGBA que van de 0 a 1.
  • Color.FromRgba de double valores RGBA que van de 0 a 1.
  • Color.FromRgba de byte valores RGBA que van de 0 a 255.
  • Color.FromRgba de int valores RGBA que van del 0 al 255.
  • Color.FromRgba de un stringvalor hexadecimal basado en el formato "#RRGGBBAA" o "#RRGGBB" o "#RGBA" o "#RGB", donde cada letra corresponde a un dígito hexadecimal para los canales alfa, rojo, verde y azul.
  • Color.FromHsla de float los valores de HSLA.
  • Color.FromHsla a partir de double los valores de HSLA.
  • Color.FromHsv a partir de los valores HSV que van de 0 a 1.
  • Color.FromHsv de int los valores de HSV que van de 0 a 255.
  • Color.FromHsva desde los valores de float HSVA.
  • Color.FromHsva a partir de int los valores de HSV.
  • Color.FromInt a partir de un int valor calculado como (B + 256 * (G + 256 * (R + 256 * A))).
  • Color.FromUint a partir de un uint valor calculado como (B + 256 * (G + 256 * (R + 256 * A)))).
  • Color.FromArgb de un stringvalor hexadecimal basado en el formato "#AARRGGBB" o "#RRGGBB" o "#ARGB" o "RGB", donde cada letra corresponde a un dígito hexadecimal para los canales alfa, rojo, verde y azul.

Nota:

Además de los métodos enumerados anteriormente, la Color clase también tiene Parse métodos y TryParse que crean Color objetos a partir de string argumentos.

Una vez creado, un Color objeto es inmutable. Las características del color se pueden obtener de los campos siguientes float , que van de 0 a 1:

  • Red, que representa el canal rojo del color.
  • Green, que representa el canal verde del color.
  • Blue, que representa el canal azul del color.
  • Alpha, que representa el canal alfa del color.

Además, las características del color se pueden obtener de los métodos siguientes:

  • GetHue, que devuelve un float que representa el canal de matiz del color.
  • GetSaturation, que devuelve un float que representa el canal de saturación del color.
  • GetLuminosity, que devuelve un float que representa el canal de luminosidad del color.

Colores con nombre

La Colors clase define 148 campos de solo lectura estáticos públicos para colores comunes, como AntiqueWhite, MidnightBluey YellowGreen.

Modificar un color

Los métodos de instancia siguientes modifican un color existente para crear un nuevo color:

  • AddLuminosity devuelve un Color mediante la adición del valor de luminosidad al valor delta proporcionado.
  • GetComplementary devuelve el elemento complementario Color.
  • MultiplyAlpha devuelve un Color mediante la multiplicación del valor alfa por el valor proporcionado float .
  • WithAlpha devuelve un , Colorreemplazando el valor alfa por el valor proporcionado float .
  • WithHue devuelve un Color, reemplazando el valor de matiz por el valor proporcionado float.
  • WithLuminosity devuelve un Color, reemplazando el valor de luminosidad por el valor proporcionado float.
  • WithSaturation devuelve un Color, reemplazando el valor de saturación por el valor proporcionado float.

Conversions

Los métodos de instancia siguientes convierten un objeto Color en una representación alternativa:

  • AsPaint devuelve un SolidPaint objeto cuya Color propiedad se establece en el color.
  • ToHex devuelve una representación hexadecimal string de un Color.
  • ToArgbHex devuelve una representación hexadecimal string de un Color en formato ARGB.
  • ToRgbaHex devuelve una representación hexadecimal string RGBA de un Color.
  • ToInt devuelve una representación ARGB int de un Color.
  • ToUint devuelve una representación ARGB uint de un Color.
  • ToRgb convierte un objeto Color en valores RGB byte que se devuelven como out argumentos.
  • ToRgba convierte un objeto Color en valores RGBA byte que se devuelven como out argumentos.
  • ToHsl convierte un objeto Color en valores HSL float que se pasan como out argumentos.

Ejemplos

En XAML, normalmente se hace referencia a los colores por sus nombres o en formato 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" />

En C#, normalmente se hace referencia a los colores mediante sus valores con nombre o con sus 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) };

En el ejemplo siguiente se usa la OnPlatform extensión de marcado para establecer de forma selectiva el color de un ActivityIndicator:

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

El código de C# equivalente es el siguiente:

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