Color Estructura
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Describe un color en términos de canales alfa, rojo, verde y azul.
public value class Color
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
struct Color
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
public struct Color
var color = {
a : /* Your value */,
r : /* Your value */,
g : /* Your value */,
b : /* Your value */
}
Public Structure Color
<Color ...>predefinedColor</Color>
- or -
<Color ...>#rgb</Color>
- or -
<Color ...>#argb</Color>
- or -
<Color ...>#rrggbb</Color>
- or -
<Color ...>#aarrggbb</Color>
- or -
<Color ...>sc#scR,scG,scB</Color>
- or -
<Color ...>sc#scA,scR,scG,scB</Color>
- or -
<object property="predefinedColor"/>
- or -
<object property="#rgb"/>
- or -
<object property="#argb"/>
- or -
<object property="#rrggbb"/>
- or -
<object property="#aarrggbb"/>
- or -
<object property="sc#scR,scG,scB"/>
- or -
<object property="sc#scA,scR,scG,scB"/>
- Herencia
-
Color
- Atributos
Requisitos de Windows
Familia de dispositivos |
Windows 10 (se introdujo en la versión 10.0.10240.0)
|
API contract |
Windows.Foundation.UniversalApiContract (se introdujo en la versión v1.0)
|
Ejemplos
Esta es la sintaxis para definir un valor color como un recurso en un ResourceDictionary XAML. Normalmente, solo necesitarías esto si defines un color que aún no es uno de los más de 250 colores proporcionados como los valores de la clase Colors y quieres usar el sistema de recursos XAML como aplicación que usas el mismo color en varias áreas de la interfaz de usuario de la aplicación. Tenga en cuenta el atributo x:Key, necesario al definir un recurso XAML.
<Application.Resources>
...
<Color x:Key="SlightlyOffBlue">#FF0000E8</Color>
</Application.Resources>
<!-- example reference to the resource, make sure is a property that is really Color not Brush-->
<ColorAnimation Storyboard.TargetName="mySolidColorBrush"
Storyboard.TargetProperty="Color" To="{StaticResource SlightlyOffBlue}" Duration="0:0:4"/>
Este código muestra un convertidor bidireccional para los valores SolidColorBrush y Color. Esto puede ser útil para escenarios de enlace de datos, ya que implementa el patrón IValueConverter que la propiedad Converter de un enlace de datos puede usar y, a continuación, puede enlazar un origen solidColorBrush a un destino Color y viceversa. Para ver este código en contexto, consulte el origen del ejemplo SwapChainPanel.
class BrushConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, string language)
{
return new SolidColorBrush((value is Color) ? (Color)value : Colors.Black);
}
public object ConvertBack(object value, Type targetType, object parameter, string language)
{
return (value is SolidColorBrush) ? (value as SolidColorBrush).Color : Colors.Black;
}
}
Comentarios
El color es una estructura Windows Runtime que representa un color que tiene cuatro canales: A (alfa), R (rojo), G (verde), B (azul). Cada uno de los valores se almacena como un tipo byte con el valor 0-255.
Los valores de color se usan en estas características y escenarios:
- Colores para pantallas de inicio y interfaz de usuario general (por ejemplo SecondaryTile.BackgroundColor y UISettings.UIElementColor). Se pueden usar en JavaScript.
- Valores de color para el sistema de entrada de lápiz de Windows 8. En concreto, InkDrawingAttributes.Color. Esto se puede usar en JavaScript.
- Valores de color para la interfaz de usuario XAML y la aplicación para UWP con C++, C# o Visual Basic, especialmente para pinceles. Estas API no se pueden usar en JavaScript.
- Definir valores de color que se usan para interfaces que representan texto, en el espacio de nombres Windows.UI.Text . Estas API no se pueden usar en JavaScript.
Valores de color y definiciones xaml
La aplicación más frecuente de Color es definir propiedades relacionadas con el color en un elemento de interfaz de usuario como parte de una aplicación para UWP mediante C++, C# o Visual Basic y su definición de interfaz de usuario XAML.
Hay varios valores de Color predefinidos disponibles como propiedades estáticas en la clase Colors . Estas propiedades son útiles para establecer valores de color en el código que coinciden con el formulario de cadena de atributo usado en XAML para establecer un color con nombre. Por ejemplo, la propiedad Colors.AliceBlue devuelve un color que es igual a Color del uso <SolidColorBrush Color="AliceBlue" />
de XAML. También puede usar los valores colors para las comparaciones de igualdad con un color.
En la mayoría de los escenarios de interfaz de usuario XAML, un color no se usa directamente como valor de propiedad de uiElement. En su lugar, se usa un color como valor de componente de un pincel ( SolidColorBrush o LinearGradientBrush). Sin embargo, el tipo Brush habilita una abreviatura XAML que permite establecer un valor de atributo de tipo Brush mediante una cadena de color con nombre o una cadena de formato que se puede analizar en un formulario ARGB . Por ejemplo, puede establecer el valor de tipo BrushTextBlock.Foreground mediante una sintaxis como <TextBlock Foreground="Cyan" />
. Esta sintaxis crea implícitamente un nuevo SolidColorBrush con un valor Color igual a Cian que rellena el valor de tipo Brush de TextBlock.Foreground para ese elemento. Para obtener más información sobre el uso de pinceles y colores en XAML, consulta Usar pinceles.
Si usas el mismo pincel de color a menudo en el XAML, debes definir un SolidColorBrush como un recurso en lugar de usar la creación implícita insertada de nuevos valores, ya que es más eficaz. Para obtener más información, consulta Optimizar el marcado XAML o las referencias a recursos Xaml y ResourceDictionary. También puede usar colores del sistema, a los que se puede acceder como recursos combinados para los temas que define el sistema. Consulta Recursos de temas XAML.
También hay algunas propiedades XAML que toman un valor color directo. Estos admiten principalmente la animación de un valor color que existe en un pincel. El Windows Runtime admite una lógica de interpolación para que puedas animar de un color a otro en una animación From/To y la animación usará valores de color interpolados a medida que se ejecuta la animación. Para obtener más información, consulta Animaciones con guion gráfico.
Notas sobre la sintaxis XAML
Si usa el token "#" para especificar valores de color en forma hexadecimal, los valores hexadecimales se almacenan en la estructura como valores entre 0 y 255, no como las cadenas hexadecimales originales. Si usa el token "sc#", los valores también se almacenan como valores entre 0 y 255, no como el valor original de 0 a 1.
Las cadenas de colores con nombre se interpretan en función de las constantes colores asociadas y los valores de A, R, G y B se establecen en la estructura como valores entre 0 y 255 que son representativos de ese color.
El uso del elemento de objeto XAML (con texto de inicialización) es útil para declarar un color como un recurso en un ResourceDictionary XAML. Para obtener más información, consulta Referencias a recursos ResourceDictionary y XAML.
En esta tabla se explican los marcadores de posición de valor de color que se muestran en la sección Sintaxis XAML.
Value | Notas |
---|---|
predefinedColor | Uno de los colores predefinidos por la clase Colors . Consulte los miembros de Colors para obtener una lista. Estas son propiedades estáticas. Especifique solo el nombre del color, por ejemplo Transparent . No incluya el calificador de clase estática en la cadena: por ejemplo, "Colors.Transparent" no analiza en XAML.<Grid Background="Blue"/> , <Color>Blue</Color> |
rgb | Valor hexadecimal de tres caracteres. El primer carácter especifica el valor de R del color, el segundo carácter especifica el valor G y el tercer carácter especifica el valor B. Por ejemplo, 00F.<Grid Background="#00F"/> , <Color>#00F</Color> |
Argb | Valor hexadecimal de cuatro caracteres. El primer carácter especifica el valor A del color, el segundo carácter especifica su valor de R, el tercer carácter especifica el valor G y el cuarto carácter especifica su valor B. Por ejemplo, F00F.<Grid Background="#F00F"/> , <Color>#F00F</Color> |
rrggbb | Valor hexadecimal de seis caracteres. Los dos primeros caracteres especifican el valor de R del color, los dos siguientes especifican su valor G y los dos últimos especifican su valor B. Por ejemplo, 0000FF.<Grid Background="#0000FF"/> , <Color>#0000FF</Color> |
Aarrggbb | Valor hexadecimal de ocho caracteres. Los dos primeros caracteres especifican el valor A del color, los dos siguientes especifican su valor de R, los dos siguientes especifican su valor G y los dos últimos especifican su valor B. Por ejemplo, FF0000FF.<Grid Background="#FF0000FF"/> , <Color>#FF0000FF</Color> |
Sca | Valor scA (alfa) del color como un valor entre 0 y 1.<Grid Background="sc#1,0,0,1"/> , <Color>sc#1,0,0,1</Color> |
Scr | Valor ScR (rojo) del color como un valor entre 0 y 1. |
Scg | Valor ScG (verde) del color como un valor entre 0 y 1. |
Scb | Valor ScB (azul) del color como un valor entre 0 y 1. |
Proyección y miembros de Color
Si usa un lenguaje Microsoft .NET (C# o Microsoft Visual Basic), Color tiene un método estático FromArgb que actúa como generador de valores color. Además, los miembros de datos de Color se exponen como propiedades de lectura y escritura.
Si está programando con C++, extensiones de componentes de Visual C++ (C++/CX) o WRL, solo existen los campos de miembro de datos como miembros de Color y no puede usar los métodos de utilidad o las propiedades enumeradas en la tabla de miembros. El código de C++ puede usar un método FromArgb equivalente en la clase ColorHelper y los métodos Platform::Object .
Comportamiento de ToString para Color
Para C# y Microsoft Visual Basic, la compatibilidad del lenguaje con la estructura Color proporciona un comportamiento para ToString
que serialice los valores de las propiedades de datos ARGB en una sola cadena. Las representaciones de cadena de los valores color son similares a la sintaxis de cadena de atributo XAML para especificar valores de color en el marcado. Es la sintaxis que suelen usar las herramientas de diseñador para especificar un color (sin nombre). La cadena tiene el formato #AARRGGBB
, donde cada par de letras representa uno de los canales de color como un valor entre 00
y FF
. Cada par de letras se interpreta como si fuera un valor hexadecimal y, por tanto, representa un valor entre 0 y 255. La cadena siempre comienza con un hash (#). Por ejemplo, el formato de cadena del color donde A=255, R=0, G=128, B=255
es "#FF0080FF". Para los colores con nombre se obtiene la cadena serializada y no el nombre de la constante; por ejemplo, llamar a ToString
en Colors.Blue proporciona "#FF0000FF".
Nota:
Las extensiones de componentes de Visual C++ (C++/CX) no usan miembros no de datos de Color y no habilitan esta forma de cadena devuelta desde ToString()
. El ToString()
valor devuelto de extensiones de componentes de Visual C++ (C++/CX) para un color es el comportamiento Platform::Object::ToString sin modificar, que proporciona una representación del tipo (con la conversión boxing por IReference) y no indica el valor.
Campos
A |
Obtiene o establece el valor de canal alfa sRGB del color. |
B |
Obtiene o establece el valor de canal azul sRGB del color. |
G |
Obtiene o establece el valor de canal verde sRGB del color. |
R |
Obtiene o establece el valor de canal rojo sRGB del color. |