Couleurs
La Color classe, dans l’espace Microsoft.Maui.Graphics de noms, vous permet de spécifier des couleurs en tant que valeurs RVB (Red-Green-Blue), les valeurs Hue-Saturation-Luminosity (HSL), les valeurs Hue-Saturation-Value (HSV) ou avec un nom de couleur. Un canal Alpha est également disponible pour indiquer la transparence.
Color les objets peuvent être créés avec Color des constructeurs, qui peuvent être utilisés pour spécifier une nuance grise, une valeur RVB ou une valeur RVB avec transparence. Les surcharges de constructeur acceptent float
les valeurs comprises entre 0 et 1, byte
et int
les valeurs.
Vous pouvez également utiliser les méthodes statiques suivantes pour créer des Color objets :
Color.FromRgb
defloat
valeurs RVB comprises entre 0 et 1.Color.FromRgb
dedouble
valeurs RVB comprises entre 0 et 1.Color.FromRgb
debyte
valeurs RVB comprises entre 0 et 255.Color.FromInt
deint
valeurs RVB comprises entre 0 et 255.Color.FromRgba
defloat
valeurs RVBA comprises entre 0 et 1.Color.FromRgba
dedouble
valeurs RVBA comprises entre 0 et 1.Color.FromRgba
debyte
valeurs RVBA comprises entre 0 et 255.Color.FromRgba
deint
valeurs RVBA comprises entre 0 et 255.Color.FromRgba
à partir d’unestring
valeur hexadécimale basée sous la forme « #RRGGBBAA » ou « #RRGGBB » ou « #RGBA » ou « #RGB », où chaque lettre correspond à un chiffre hexadécimal pour les canaux alpha, rouge, vert et bleu.Color.FromHsla
à partir defloat
valeurs HSLA.Color.FromHsla
à partir dedouble
valeurs HSLA.Color.FromHsv
defloat
valeurs HSV comprises entre 0 et 1.Color.FromHsv
deint
valeurs HSV comprises entre 0 et 255.Color.FromHsva
à partir defloat
valeurs HSVA.Color.FromHsva
à partir deint
valeurs HSV.Color.FromInt
d’uneint
valeur calculée comme (B + 256 * (G + 256 * (R + 256 * A)) )Color.FromUint
d’uneuint
valeur calculée comme (B + 256 * (G + 256 * (R + 256 * A)) )Color.FromArgb
à partir d’unestring
valeur hexadécimale basée sous la forme « #AARRGGBB » ou « #RRGGBB » ou « #ARGB » ou « RVB », où chaque lettre correspond à un chiffre hexadécimal pour les canaux alpha, rouge, vert et bleu.
Remarque
Outre les méthodes répertoriées ci-dessus, la Color classe a Parse également et TryParse les méthodes qui créent Color des objets à partir d’arguments string
.
Une fois créé, un Color objet est immuable. Les caractéristiques de la couleur peuvent être obtenues à partir des champs suivants float
, comprises entre 0 et 1 :
- Red, qui représente le canal rouge de la couleur.
- Green, qui représente le canal vert de la couleur.
- Blue, qui représente le canal bleu de la couleur.
- Alpha, qui représente le canal alpha de la couleur.
En outre, les caractéristiques de la couleur peuvent être obtenues à partir des méthodes suivantes :
- GetHue, qui retourne un
float
qui représente le canal de teinte de la couleur. - GetSaturation, qui retourne un
float
qui représente le canal de saturation de la couleur. - GetLuminosity, qui retourne un
float
qui représente le canal de luminosité de la couleur.
Couleurs nommées
La Colors classe définit 148 champs statiques en lecture seule publique pour les couleurs courantes, telles que AntiqueWhite
, MidnightBlue
et YellowGreen
.
Modifier une couleur
Les méthodes d’instance suivantes modifient une couleur existante pour créer une nouvelle couleur :
- AddLuminosity retourne une Color valeur en ajoutant la valeur de luminosité à la valeur delta fournie.
- GetComplementary retourne l’élément complémentaire Color.
- MultiplyAlpha retourne une Color valeur en multipliant la valeur alpha par la valeur fournie
float
. - WithAlpha retourne un Color, en remplaçant la valeur alpha par la valeur fournie
float
. - WithHue retourne un Color, en remplaçant la valeur de teinte par la valeur fournie
float
. - WithLuminosity retourne un Color, en remplaçant la valeur de luminosité par la valeur fournie
float
. - WithSaturation retourne un Color, en remplaçant la valeur de saturation par la valeur fournie
float
.
Conversions
Les méthodes d’instance suivantes convertissent une Color représentation alternative :
- AsPaint retourne un SolidPaint objet dont Color la propriété est définie sur la couleur.
- ToHex retourne une représentation hexadécimale
string
d’un Color. - ToArgbHex retourne une représentation hexadécimale
string
ARGB d’un Color. - ToRgbaHex retourne une représentation hexadécimale
string
RVBA d’un Color. - ToInt retourne une représentation ARVB
int
d’un Color. - ToUint retourne une représentation ARVB
uint
d’un Color. - ToRgb convertit une Color valeur RVB
byte
en valeurs retournées en tant qu’argumentsout
. - ToRgba convertit une Color valeur RVBA
byte
qui est retournée en tant qu’argumentsout
. - ToHsl convertit un Color en valeurs HSL
float
qui sont passées en tant qu’argumentsout
.
Exemples
En XAML, les couleurs sont généralement référencées à l’aide de leurs valeurs nommées ou avec des valeurs hexadécimales :
<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#, les couleurs sont généralement référencées à l’aide de leurs valeurs nommées ou avec leurs méthodes statiques :
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) };
L’exemple suivant utilise l’extension de OnPlatform
balisage pour définir de manière sélective la couleur d’un ActivityIndicator:
<ActivityIndicator Color="{OnPlatform AliceBlue, iOS=MidnightBlue}"
IsRunning="True" />
Le code C# équivalent est :
ActivityIndicator activityIndicator = new ActivityIndicator
{
Color = DeviceInfo.Platform == DevicePlatform.iOS ? Colors.MidnightBlue : Colors.AliceBlue,
IsRunning = true
};