Colori
La Color classe, nello spazio dei Microsoft.Maui.Graphics nomi , consente di specificare i colori come valori Red-Green-Blue (RGB), Hue-Saturation-Luminosity (HSL), valori Hue-Saturation-Value (HSV) o con un nome di colore. È disponibile anche un canale Alfa per indicare la trasparenza.
Color gli oggetti possono essere creati con Color costruttori, che possono essere usati per specificare una sfumatura grigia, un valore RGB o un valore RGB con trasparenza. Gli overload del costruttore accettano float
valori compresi tra 0 e 1, byte
e int
.
È anche possibile usare i metodi statici seguenti per creare Color oggetti:
Color.FromRgb
dafloat
valori RGB compresi tra 0 e 1.Color.FromRgb
dadouble
valori RGB compresi tra 0 e 1.Color.FromRgb
dabyte
valori RGB compresi tra 0 e 255.Color.FromInt
daint
valori RGB compresi tra 0 e 255.Color.FromRgba
daifloat
valori RGBA compresi tra 0 e 1.Color.FromRgba
daidouble
valori RGBA compresi tra 0 e 1.Color.FromRgba
dabyte
valori RGBA compresi tra 0 e 255.Color.FromRgba
daint
valori RGBA compresi tra 0 e 255.Color.FromRgba
da unstring
valore esadecimale basato sul formato "#RRGGBBAA" o "#RRGGBB" o "#RGBA" o "#RGB", dove ogni lettera corrisponde a una cifra esadecimale per i canali alfa, rosso, verde e blu.Color.FromHsla
dafloat
valori HSLA.Color.FromHsla
dadouble
valori HSLA.Color.FromHsv
dafloat
valori HSV compresi tra 0 e 1.Color.FromHsv
daint
valori HSV compresi tra 0 e 255.Color.FromHsva
dafloat
valori HSVA.Color.FromHsva
daint
valori HSV.Color.FromInt
da unint
valore calcolato come (B + 256 * (G + 256 * (R + 256 * A))).Color.FromUint
da unuint
valore calcolato come (B + 256 * (G + 256 * (R + 256 * A))).Color.FromArgb
da unstring
valore esadecimale basato sul formato "#AARRGGBB" o "#RRGGBB" o "#ARGB" o "RGB", dove ogni lettera corrisponde a una cifra esadecimale per i canali alfa, rosso, verde e blu.
Nota
Oltre ai metodi elencati in precedenza, la Color classe include Parse anche metodi e TryParse che creano Color oggetti dagli string
argomenti.
Una volta creato, un Color oggetto non è modificabile. Le caratteristiche del colore possono essere ottenute dai campi seguenti float
, compresi tra 0 e 1:
- Red, che rappresenta il canale rosso del colore.
- Green, che rappresenta il canale verde del colore.
- Blue, che rappresenta il canale blu del colore.
- Alpha, che rappresenta il canale alfa del colore.
Inoltre, le caratteristiche del colore possono essere ottenute dai metodi seguenti:
- GetHue, che restituisce un
float
oggetto che rappresenta il canale di tonalità del colore. - GetSaturation, che restituisce un
float
oggetto che rappresenta il canale di saturazione del colore. - GetLuminosity, che restituisce un
float
oggetto che rappresenta il canale di luminosità del colore.
Colori denominati
La Colors classe definisce 148 campi di sola lettura statici pubblici per i colori comuni, ad esempio AntiqueWhite
, MidnightBlue
e YellowGreen
.
Modificare un colore
I metodi di istanza seguenti modificano un colore esistente per creare un nuovo colore:
- AddLuminosity restituisce un oggetto Color aggiungendo il valore di luminosità al valore delta fornito.
- GetComplementary restituisce l'oggetto complementare Color.
- MultiplyAlpha restituisce un oggetto Color moltiplicando il valore alfa per il valore fornito
float
. - WithAlpha restituisce un oggetto Color, sostituendo il valore alfa con il valore fornito
float
. - WithHue restituisce un Coloroggetto , sostituendo il valore hue con il valore fornito
float
. - WithLuminosity restituisce un Coloroggetto , sostituendo il valore di luminosità con il valore fornito
float
. - WithSaturation restituisce un Coloroggetto , sostituendo il valore di saturazione con il valore fornito
float
.
Conversioni
I metodi di istanza seguenti converteno un oggetto Color in una rappresentazione alternativa:
- AsPaint restituisce un SolidPaint oggetto la cui Color proprietà è impostata sul colore.
- ToHex restituisce una rappresentazione esadecimale
string
di un oggetto Color. - ToArgbHex restituisce una rappresentazione esadecimale
string
ARGB di un oggetto Color. - ToRgbaHex restituisce una rappresentazione esadecimale
string
RGBA di un oggetto Color. - ToInt restituisce una rappresentazione ARGB
int
di un oggetto Color. - ToUint restituisce una rappresentazione ARGB
uint
di un oggetto Color. - ToRgb converte un oggetto Color in valori RGB
byte
restituiti comeout
argomenti. - ToRgba converte un oggetto Color in valori RGBA
byte
restituiti comeout
argomenti. - ToHsl converte un oggetto Color in valori HSL
float
passati comeout
argomenti.
Esempi
In XAML viene in genere fatto riferimento ai colori usando i valori denominati o con esadecimale:
<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" />
In C# viene in genere fatto riferimento ai colori usando i valori denominati o con i relativi metodi statici:
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) };
Nell'esempio seguente viene usata l'estensione OnPlatform
di markup per impostare in modo selettivo il colore di un oggetto ActivityIndicator:
<ActivityIndicator Color="{OnPlatform AliceBlue, iOS=MidnightBlue}"
IsRunning="True" />
Il codice C# equivalente è il seguente:
ActivityIndicator activityIndicator = new ActivityIndicator
{
Color = DeviceInfo.Platform == DevicePlatform.iOS ? Colors.MidnightBlue : Colors.AliceBlue,
IsRunning = true
};