Freigeben über


Farben

Beispiel durchsuchen. Durchsuchen Sie das Beispiel

Verwenden Sie die Color Klasse im Microsoft.Maui.Graphics Namespace, um Farben entweder als Red-Green-Blue (RGB)-Werte, Hue-Saturation-Luminosity (HSL)-Werte, Hue-Saturation-Value (HSV)-Werte oder mit einem Farbnamen anzugeben. Ein Alphakanal steht auch zur Verfügung, um Transparenz anzugeben.

Color Objekte können mit Color Konstruktoren erstellt werden, die verwendet werden können, um einen grauen Schatten, einen RGB-Wert oder einen RGB-Wert mit Transparenz anzugeben. Konstruktorüberladungen akzeptieren float Werte zwischen 0 und 1, byte und int Werte.

Hinweis

Der Standardkonstruktor Color erstellt ein schwarzes Color Objekt.

Sie können auch die folgenden statischen Methoden verwenden, um Objekte zu erstellen Color :

  • Color.FromRgb von float RGB-Werten, die zwischen 0 und 1 liegen.
  • Color.FromRgb von double RGB-Werten, die zwischen 0 und 1 liegen.
  • Color.FromRgb von byte RGB-Werten, die zwischen 0 und 255 liegen.
  • Color.FromInt von int RGB-Werten, die zwischen 0 und 255 liegen.
  • Color.FromRgba von float RGBA-Werten, die zwischen 0 und 1 liegen.
  • Color.FromRgba von double RGBA-Werten, die im Bereich von 0 bis 1 liegen.
  • Color.FromRgba aus byte RGBA-Werten, die von 0 bis 255 reichen.
  • Color.FromRgba von int RGBA-Werten, die zwischen 0 und 255 liegen.
  • Color.FromRgba aus einem string-basierten Hexadezimalwert in form "#RRGGBBAA" oder "#RRGGBB" oder "#RGBA" oder "#RGB", wobei jeder Buchstabe einer hexadezimalen Ziffer für die Alpha-, Rot-, Grün- und Blaukanäle entspricht.
  • Color.FromHsla aus float HSLA-Werten.
  • Color.FromHsla aus double HSLA-Werten.
  • Color.FromHsv von float HSV-Werten, die zwischen 0 und 1 liegen.
  • Color.FromHsv von int HSV-Werten, die zwischen 0 und 255 liegen.
  • Color.FromHsva aus float HSVA-Werten.
  • Color.FromHsva aus int HSV-Werten.
  • Color.FromInt aus einem Wert, der als int berechnet wurde (B + 256 * (G + 256 * (R + 256 * A))).
  • Color.FromUint aus einem uint berechneten Wert (B + 256 * (G + 256 * (R + 256 * A))).
  • Color.FromArgb aus einem string-basierten Hexadezimalwert in form "#AARRGGBB" oder "#RRGGBB" oder "#ARGB" oder "RGB", wobei jeder Buchstabe einer hexadezimalen Ziffer für die Alpha-, Rot-, Grün- und Blaukanäle entspricht.

Hinweis

Zusätzlich zu den oben aufgeführten Methoden verfügt die Color Klasse auch über Parse Methoden und TryParse Methoden, mit denen Objekte aus Color Argumenten erstellt werdenstring.

Nach der Erstellung ist ein Color Objekt unveränderlich. Die Eigenschaften der Farbe können aus den folgenden float Feldern abgerufen werden, die zwischen 0 und 1 liegen:

  • Red, der den roten Kanal der Farbe darstellt.
  • Green, der den grünen Kanal der Farbe darstellt.
  • Blue, der den blauen Kanal der Farbe darstellt.
  • Alpha, der den Alphakanal der Farbe darstellt.

Darüber hinaus können die Eigenschaften der Farbe aus den folgenden Methoden abgerufen werden:

  • GetHue, der einen float Wert zurückgibt, der den Farbtonkanal der Farbe darstellt.
  • GetSaturation, welcher ein float zurückgibt, das den Sättigungskanal der Farbe darstellt.
  • GetLuminosity, der ein float zurückgibt, das den Leuchtdichtekanal der Farbe darstellt.

Benannte Farben

Die Colors Klasse definiert 148 öffentliche, statische, schreibgeschützte Felder für allgemeine Farben, wie z. B. AntiqueWhite, MidnightBlue und YellowGreen.

Ändern einer Farbe

Die folgenden Instanzmethoden ändern eine vorhandene Farbe, um eine neue Farbe zu erstellen:

  • AddLuminosity gibt ein Color zurück, indem der Leuchtkraftwert zum angegebenen Deltawert hinzugefügt wird.
  • GetComplementary gibt das Komplement Color zurück.
  • MultiplyAlpha gibt einen Color-Wert zurück, indem der Alphawert mit dem angegebenen float-Wert multipliziert wird.
  • WithAlpha gibt einen ColorWert zurück, der den Alphawert durch den angegebenen float Wert ersetzt.
  • WithHue gibt einen Color zurück und ersetzt den Farbtonwert durch den angegebenen float-Wert.
  • WithLuminosity gibt einen ColorWert zurück, der den Leuchtdichtewert durch den angegebenen float Wert ersetzt.
  • WithSaturation gibt einen Color, ersetzt den Sättigungswert durch den angegebenen float Wert.

Konvertierungen

Die folgenden Instanzmethoden konvertieren eine Color in eine alternative Darstellung:

  • AsPaint gibt ein SolidPaint Objekt zurück, dessen Color Eigenschaft auf die Farbe festgelegt ist.
  • ToHex gibt eine hexadezimale string Darstellung eines Color zurück.
  • ToArgbHex gibt eine ARGB-Darstellung im Hexadezimalformat eines Color zurück.
  • ToRgbaHex gibt eine RGBA-Hexadezimaldarstellung string einer Color wieder.
  • ToInt gibt eine ARGB-Darstellung int einer Color.
  • ToUint gibt eine ARGB-Repräsentation uint eines Color zurück.
  • ToRgb konvertiert ein Color zu RGB-Werten byte, die als out Argumente zurückgegeben werden.
  • ToRgba konvertiert ein Color in RGBA-Werte byte, die als out Argumente zurückgegeben werden.
  • ToHsl konvertiert ein Color zu HSL-float-Werten, die als out-Argumente übergeben werden.

Beispiele

In XAML werden Farben in der Regel mithilfe ihrer benannten Werte oder in Hexadezimalwerten angegeben.

<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# werden Farben in der Regel mit ihren benannten Werten oder mit ihren statischen Methoden referenziert:

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) };

Im folgenden Beispiel wird die OnPlatform-Markuperweiterung verwendet, um die Farbe eines ActivityIndicator gezielt festzulegen.

<ActivityIndicator Color="{OnPlatform AliceBlue, iOS=MidnightBlue}"
                   IsRunning="True" />

Der entsprechende C#-Code lautet:

ActivityIndicator activityIndicator = new ActivityIndicator
{
    Color = DeviceInfo.Platform == DevicePlatform.iOS ? Colors.MidnightBlue : Colors.AliceBlue,
    IsRunning = true
};