Condividi tramite


Colori

Browse sample. Esplorare l'esempio

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, bytee int .

Nota

Il costruttore predefinito Color crea un oggetto nero Color .

È anche possibile usare i metodi statici seguenti per creare Color oggetti:

  • Color.FromRgb da float valori RGB compresi tra 0 e 1.
  • Color.FromRgb da double valori RGB compresi tra 0 e 1.
  • Color.FromRgb da byte valori RGB compresi tra 0 e 255.
  • Color.FromInt da int valori RGB compresi tra 0 e 255.
  • Color.FromRgba dai float valori RGBA compresi tra 0 e 1.
  • Color.FromRgba dai double valori RGBA compresi tra 0 e 1.
  • Color.FromRgba da byte valori RGBA compresi tra 0 e 255.
  • Color.FromRgba da int valori RGBA compresi tra 0 e 255.
  • Color.FromRgba da un stringvalore 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 da float valori HSLA.
  • Color.FromHsla da double valori HSLA.
  • Color.FromHsv da float valori HSV compresi tra 0 e 1.
  • Color.FromHsv da int valori HSV compresi tra 0 e 255.
  • Color.FromHsva da float valori HSVA.
  • Color.FromHsva da int valori HSV.
  • Color.FromInt da un int valore calcolato come (B + 256 * (G + 256 * (R + 256 * A))).
  • Color.FromUint da un uint valore calcolato come (B + 256 * (G + 256 * (R + 256 * A))).
  • Color.FromArgb da un stringvalore 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, MidnightBluee 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 come out argomenti.
  • ToRgba converte un oggetto Color in valori RGBA byte restituiti come out argomenti.
  • ToHsl converte un oggetto Color in valori HSL float passati come out 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
};