Colores de Xamarin.FormsColors in Xamarin.Forms

Descargar ejemplo descargar el ejemploDownload Sample Download the sample

Xamarin.Forms proporciona una clase de Color flexible y multiplataforma.Xamarin.Forms provides a flexible cross-platform Color class.

Este artículo presentan las distintas formas la Color clase puede usarse en Xamarin.Forms.This article introduces the various ways the Color class can be used in Xamarin.Forms.

La Color clase proporciona una serie de métodos para crear una instancia de colorThe Color class provides a number of methods to build a color instance

  • Colores con nombre -una colección de comunes colores con nombre, incluidos Red, Green, y Blue.Named Colors - a collection of common named-colors, including Red, Green, and Blue.
  • FromHex -valor similar a la sintaxis utilizada en HTML, por ejemplo "00FF00" de cadena.FromHex - string value similar to the syntax used in HTML, for example "00FF00". Alfa, opcionalmente, puede especificarse como el primer par de caracteres ("CC00FF00").Alpha can optionally be specified as the first pair of characters ("CC00FF00").
  • FromHsla -matiz, saturación y luminosidad double valores, con el valor alfa opcional (0.0-1.0).FromHsla - Hue, saturation and luminosity double values, with optional alpha value (0.0-1.0).
  • FromRgb -rojo, verde y azul int valores (0-255).FromRgb - Red, green, and blue int values (0-255).
  • FromRgba -rojo, verde, azul y alfa int valores (0-255).FromRgba - Red, green, blue, and alpha int values (0-255).
  • FromUint -establecer una sola double que representa el valor argb.FromUint - set a single double value representing argb.

Presentamos algunos colores del ejemplo, asignados a la BackgroundColor de algunas etiquetas utilizando diferentes variaciones de la sintaxis permitida:Here's some example colors, assigned to the BackgroundColor of some labels using different variations of the allowed syntax:

var red    = new Label { Text = "Red",   BackgroundColor = Color.Red };
var orange = new Label { Text = "Orange",BackgroundColor = Color.FromHex("FF6A00") };
var yellow = new Label { Text = "Yellow",BackgroundColor = Color.FromHsla(0.167, 1.0, 0.5, 1.0) };
var green  = new Label { Text = "Green", BackgroundColor = Color.FromRgb (38, 127, 0) };
var blue   = new Label { Text = "Blue",  BackgroundColor = Color.FromRgba(0, 38, 255, 255) };
var indigo = new Label { Text = "Indigo",BackgroundColor = Color.FromRgb (0, 72, 255) };
var violet = new Label { Text = "Violet",BackgroundColor = Color.FromHsla(0.82, 1, 0.25, 1) };

var transparent = new Label { Text = "Transparent",BackgroundColor = Color.Transparent };
var @default = new Label    { Text = "Default",    BackgroundColor = Color.Default };
var accent = new Label      { Text = "Accent",     BackgroundColor = Color.Accent };

Estos colores se muestran en cada plataforma a continuación.These colors are shown on each platform below. Tenga en cuenta el color final - Accent -es un color blue-ish para iOS y Android; este valor se define mediante Xamarin.Forms.Notice the final color - Accent - is a blue-ish color for iOS and Android; this value is defined by Xamarin.Forms.

Demostración de colorColor demo

Color.DefaultColor.Default

Use el Default para establecer un valor de color en el valor predeterminado de plataforma (Esto representa un color subyacente diferente en cada plataforma para cada propiedad de descripción) (o volver a establecer).Use the Default to set (or re-set) a color value back to the platform default (understanding that this represents a different underlying color on each platform for each property).

Los desarrolladores pueden usar este valor para establecer un Color propiedad pero no debería no consultar esta instancia para sus valores RGB de componente (que están todo listo en -1).Developers can use this value to set a Color property but should not query this instance for its component RGB values (they're all set to -1).

Color.TransparentColor.Transparent

Establezca el color para borrar.Set the color to clear.

Color.AccentColor.Accent

En iOS y Android, esta instancia se establece en un color de contraste que está visible en el fondo predeterminado, pero no es el mismo que el color del texto de forma predeterminada.On iOS and Android this instance is set to a contrasting color that is visible on the default background but is not the same as the default text color.

Métodos adicionalesAdditional Methods

Color instancias incluyen métodos adicionales que pueden usarse para crear nuevos colores:Color instances include additional methods that can be used to create new colors:

  • AddLuminosity -devuelve un nuevo color si modifica la luminosidad por el delta proporcionado.AddLuminosity - returns a new color by modifying the luminosity by the supplied delta.
  • WithHue -devuelve un nuevo color, reemplazando el matiz con el valor proporcionado.WithHue - returns a new color, replacing the hue with the value supplied.
  • WithLuminosity -devuelve un nuevo color, reemplazando la luminosidad con el valor proporcionado.WithLuminosity - returns a new color, replacing the luminosity with the value supplied.
  • WithSaturation -devuelve un nuevo color, reemplazando la saturación con el valor proporcionado.WithSaturation - returns a new color, replacing the saturation with the value supplied.
  • MultiplyAlpha -devuelve un nuevo color mediante la modificación de la versión alfa, multiplicarlo por el valor alfa proporcionado.MultiplyAlpha - returns a new color by modifying the alpha, multiplying it by the supplied alpha value.

Conversiones implícitasImplicit Conversions

Conversión implícita entre el Xamarin.Forms.Color y System.Drawing.Color tipos se pueden realizar:Implicit conversion between the Xamarin.Forms.Color and System.Drawing.Color types can be performed:

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;

Device.RuntimePlatformDevice.RuntimePlatform

Este fragmento de código usa el Device.RuntimePlatform propiedad para establecer el color de un ActivityIndicator:This code snippet uses the Device.RuntimePlatform property to selectively set the color of an ActivityIndicator:

ActivityIndicator activityIndicator = new ActivityIndicator
{
    Color = Device.RuntimePlatform == Device.iOS ? Color.Black : Color.Default,
    IsRunning = true
};

Uso de XAMLUsing from XAML

También se puedan encontrar fácilmente los colores en XAML mediante los nombres de colores definido o las representaciones hexadecimales que se muestra aquí:Colors can also be easily referenced in XAML using the defined color names or the Hex representations shown here:

<Label Text="Sea color" BackgroundColor="Aqua" />
<Label Text="RGB" BackgroundColor="#00FF00" />
<Label Text="Alpha plus RGB" BackgroundColor="#CC00FF00" />
<Label Text="Tiny RGB" BackgroundColor="#0F0" />
<Label Text="Tiny Alpha plus RGB" BackgroundColor="#C0F0" />

Nota

Cuando se usa la compilación de XAML, los nombres de colores distinguen mayúsculas de minúsculas y por lo tanto, pueden escribirse en minúsculas.When using XAML compilation, color names are case insensitive and therefore can be written in lowercase. Para obtener más información sobre la compilación de XAML, vea compilación XAML.For more information about XAML compilation, see XAML Compilation.

ResumenSummary

Xamarin.Forms Color clase se utiliza para crear referencias de color basadas en la plataforma.The Xamarin.Forms Color class is used to create platform-aware color references. Se puede usar en código compartido y XAML.It can be used in shared code and XAML.