Color Structure

Définition

Décrit une couleur en termes de canaux alpha, rouge, vert et bleu.

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"/>
Héritage
Color
Attributs

Configuration requise pour Windows

Famille d’appareils
Windows 10 (introduit dans 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (introduit dans v1.0)

Exemples

Voici la syntaxe permettant de définir une valeur Color en tant que ressource dans un ResourceDictionary XAML. En règle générale, vous n’en avez besoin que si vous définissez une couleur qui n’est pas déjà l’une des plus de 250 couleurs fournies comme valeurs dans la classe Colors , et que vous souhaitez utiliser le système de ressources XAML pour garantir que vous utilisez la même couleur dans plusieurs zones de l’interface utilisateur de votre application. Notez l’attribut x:Key, requis lorsque vous définissez une ressource 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"/>

Ce code montre un convertisseur bidirectionnel pour les valeurs SolidColorBrush et Color. Cela peut être utile pour les scénarios de liaison de données, car il implémente le modèle IValueConverter que la propriété Converter d’une liaison de données peut utiliser, et vous pouvez ensuite lier une source SolidColorBrush à une cible Color et vice versa. Pour voir ce code en contexte, consultez la source de l’exemple 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;
    }
}

Remarques

La couleur est une structure Windows Runtime qui représente une couleur qui a quatre canaux : A (alpha), R (rouge), G (vert), B (bleu). Chacune des valeurs est stockée en tant que type Byte avec la valeur 0-255.

Les valeurs de couleur sont utilisées dans ces fonctionnalités et scénarios :

  • Couleurs des écrans de démarrage et de l’interface utilisateur générale (par exemple SecondaryTile.BackgroundColor et UISettings.UIElementColor). Elles peuvent être utilisées en JavaScript.
  • Valeurs de couleur pour le système d’entrée manuscrite Windows 8. Plus précisément, InkDrawingAttributes.Color. Cela peut être utilisé dans JavaScript.
  • Valeurs de couleur pour l’interface utilisateur XAML et l’application UWP en C++, C# ou Visual Basic, en particulier pour les pinceaux. Ces API ne peuvent pas être utilisées en JavaScript.
  • Définition des valeurs de couleur utilisées pour les interfaces représentant du texte, dans l’espace de noms Windows.UI.Text . Ces API ne peuvent pas être utilisées en JavaScript.

Valeurs de couleur et définitions XAML

L’application la plus fréquente de Color consiste à définir des propriétés liées aux couleurs dans un élément d’interface utilisateur dans le cadre d’une application UWP à l’aide de C++, C# ou Visual Basic et de sa définition d’interface utilisateur XAML.

Diverses valeurs color prédéfinies sont disponibles en tant que propriétés statiques sur la classe Colors . Ces propriétés sont utiles pour définir des valeurs color dans le code qui correspondent à la forme de chaîne d’attribut utilisée en XAML pour définir une couleur nommée. Par exemple, la propriété Colors.AliceBlue renvoie une couleur égale à Color à partir de l’utilisation <SolidColorBrush Color="AliceBlue" />de XAML . Vous pouvez également utiliser les valeurs De couleurs pour les comparaisons d’égalité par rapport à une couleur.

Dans la plupart des scénarios d’interface utilisateur XAML, une couleur n’est pas utilisée directement comme valeur de propriété d’un élément UIElement. Au lieu de cela, une couleur est utilisée comme valeur de composant d’un brush ( SolidColorBrush ou LinearGradientBrush). Toutefois, le type Brush active un raccourci XAML qui vous permet de définir une valeur d’attribut de type Brush à l’aide d’une chaîne de couleur nommée ou d’une chaîne de format qui peut être analysée dans un formulaire ARGB . Par exemple, vous pouvez définir la valeur de type BrushTextBlock.Foreground à l’aide d’une syntaxe telle que <TextBlock Foreground="Cyan" />. Cette syntaxe crée implicitement un nouveau SolidColorBrush avec une valeur Color égale à Cyan qui remplit la valeur de type Brush de TextBlock.Foreground pour cet élément. Pour plus d’informations sur l’utilisation de pinceaux et de couleurs en XAML, consultez Utiliser des pinceaux.

Si vous utilisez souvent le même pinceau de couleur dans votre code XAML, vous devez définir un objet SolidColorBrush en tant que ressource plutôt que d’utiliser la création implicite inline de nouvelles valeurs, car c’est plus efficace. Pour plus d’informations, consultez Optimiser votre balisage XAML ou Références de ressources ResourceDictionary et XAML. Vous pouvez également utiliser des couleurs système, qui sont accessibles en tant que ressources fusionnées pour les thèmes définis par le système. Consultez Ressources de thème XAML.

Certaines propriétés XAML prennent également une valeur Color directe. Ceux-ci prennent principalement en charge l’animation d’une valeur Color qui existe sur un pinceau. L’Windows Runtime prend en charge une logique d’interpolation afin que vous puissiez animer d’une couleur à une autre dans une animation De/à et l’animation utilise des valeurs color interpolées pendant l’exécution de l’animation. Pour plus d’informations, voir Animations dans une table de montage séquentiel.

Remarques sur la syntaxe XAML

Si vous utilisez le jeton « # » pour spécifier des valeurs de couleur au format hexadécimal, les valeurs hexadécimale sont stockées dans la structure en tant que valeurs comprises entre 0 et 255, et non sous forme de chaînes hexadécimale d’origine. Si vous utilisez le jeton « sc# », les valeurs sont également stockées sous la forme de valeurs comprises entre 0 et 255, et non comme la valeur d’origine de 0 à 1.

Les chaînes des couleurs nommées sont interprétées en fonction des constantes Colors associées, et les valeurs de A, R, G et B sont définies dans la structure en tant que valeurs comprises entre 0 et 255 qui sont représentatives de cette couleur.

L’utilisation de l’élément objet XAML (avec le texte d’initialisation) est utile pour déclarer une couleur en tant que ressource dans un ResourceDictionary XAML. Pour plus d’informations, consultez Références aux ressources ResourceDictionary et XAML.

Ce tableau explique les espaces réservés de valeur de couleur affichés dans la section Syntaxe XAML.

Valeur Notes
prédéfiniColor Une des couleurs prédéfinies par la classe Colors . Consultez les membres de Colors pour obtenir une liste. Il s’agit de propriétés statiques. Spécifiez uniquement le nom de la couleur, par exemple Transparent. N’incluez pas le qualificateur de classe statique dans la chaîne : par exemple, « Colors.Transparent » n’analyse pas en XAML.
<Grid Background="Blue"/>, <Color>Blue</Color>
Rvb Valeur hexadécimale à trois caractères. Le premier caractère spécifie la valeur R de la couleur, le deuxième caractère spécifie la valeur G et le troisième caractère spécifie la valeur B. Par exemple, 00F.
<Grid Background="#00F"/>, <Color>#00F</Color>
Argb Valeur hexadécimale à quatre caractères. Le premier caractère spécifie la valeur A de la couleur, le deuxième caractère spécifie sa valeur R, le troisième caractère spécifie la valeur G et le quatrième caractère spécifie sa valeur B. Par exemple, F00F.
<Grid Background="#F00F"/>, <Color>#F00F</Color>
rrggbb Valeur hexadécimale à six caractères. Les deux premiers caractères spécifient la valeur R de la couleur, les deux suivants spécifient sa valeur G et les deux derniers spécifient sa valeur B. Par exemple, 0000FF.
<Grid Background="#0000FF"/>, <Color>#0000FF</Color>
aarrggbb Valeur hexadécimale de huit caractères. Les deux premiers caractères spécifient la valeur A de la couleur, les deux suivants spécifient sa valeur R, les deux suivants spécifient sa valeur G et les deux derniers spécifient sa valeur B. Par exemple, FF0000FF.
<Grid Background="#FF0000FF"/>, <Color>#FF0000FF</Color>
Sca Valeur ScA (alpha) de la couleur sous la forme d’une valeur comprise entre 0 et 1.
<Grid Background="sc#1,0,0,1"/>, <Color>sc#1,0,0,1</Color>
Scr Valeur ScR (rouge) de la couleur sous la forme d’une valeur comprise entre 0 et 1.
Scg Valeur ScG (vert) de la couleur sous la forme d’une valeur comprise entre 0 et 1.
Scb Valeur ScB (bleu) de la couleur sous la forme d’une valeur comprise entre 0 et 1.

Projection et membres de Color

Si vous utilisez un langage Microsoft .NET (C# ou Microsoft Visual Basic), Color a une méthode statique FromArgb qui agit comme un générateur de valeurs Color. En outre, les membres de données de Color sont exposés en tant que propriétés en lecture-écriture.

Si vous programmez avec C++, extensions de composant Visual C++ (C++/CX) ou WRL, seuls les champs membres de données existent en tant que membres de Color, et vous ne pouvez pas utiliser les méthodes ou propriétés de l’utilitaire répertoriées dans la table members. Le code C++ peut utiliser une méthode FromArgb équivalente sur la classe ColorHelper et les méthodes Platform::Object .

Comportement ToString pour Color

Pour C# et Microsoft Visual Basic, la prise en charge du langage pour la structure Color fournit un comportement pour ToString qui sérialise les valeurs des propriétés de données ARGB en une seule chaîne. Les représentations sous forme de chaîne de valeurs Color sont similaires à la syntaxe de chaîne d’attribut XAML pour la spécification de valeurs Color dans le balisage. Il s’agit de la syntaxe la plus couramment utilisée par les outils de concepteur pour spécifier une couleur (non nommée). La chaîne se présente sous la forme #AARRGGBB, où chaque paire de lettres représente l’un des canaux de couleur en tant que valeur comprise entre 00 et FF. Chaque paire de lettres est interprétée comme s’il s’agissait d’une valeur hexadécimal et représente donc une valeur comprise entre 0 et 255. La chaîne commence toujours par un hachage (#). Par exemple, la forme de chaîne de la couleur où A=255, R=0, G=128, B=255 est « #FF0080FF ». Pour les couleurs nommées, vous obtenez la chaîne sérialisée et non le nom de constante ; Par exemple, l’appel ToString sur Colors.Blue donne « #FF0000FF ».

Notes

Les extensions de composant Visual C++ (C++/CX) n’utilisent pas de membres non-data de Color et n’activent pas cette forme de chaîne retournée à partir de ToString(). La ToString() valeur retournée par les extensions de composant Visual C++ (C++/CX) pour une couleur est le comportement non modifié Platform::Object::ToString , qui donne une représentation du type (encadré par IReference) et n’indique pas la valeur.

Champs

A

Obtient ou définit la valeur du canal alpha sRGB de la couleur.

B

Obtient ou définit la valeur du canal bleu sRGB de la couleur.

G

Obtient ou définit la valeur du canal vert sRGB de la couleur.

R

Obtient ou définit la valeur du canal rouge sRGB de la couleur.

S’applique à

Voir aussi