Teilen über


Farben

Browse sample.Beispiel durchsuchen

Mit der Color-Klasse im Microsoft.Maui.Graphics-Namespace können Farben als Rot-Grün-Blau (RGB)-Werte, als Farbton-Sättigungs-Leuchtdichte (HSL)-Werte, als Farbton-Sättigungs-Werte (HSV)-Werte oder mit einem Farbnamen angegeben werden. Ein Alphakanal ist außerdem verfügbar, um die Transparenz anzugeben.

Color-Objekte können mit Color-Konstruktoren erstellt werden, die verwendet werden können, um einen Grauton, einen RGB-Wert oder einen RGB-Wert mit Transparenz anzugeben. Für Konstruktorüberladungen werden float-Werte von 0 bis 1, byte- und int-Werte akzeptiert.

Hinweis

Der Standard-Color-Konstruktor erzeugt ein schwarzes Color-Objekt.

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

  • Color.FromRgb aus float-RGB-Werten, die zwischen 0 und 1 liegen.
  • Color.FromRgb aus double-RGB-Werten, die zwischen 0 und 1 liegen.
  • Color.FromRgb aus byte-RGB-Werten, die zwischen 0 und 255 liegen.
  • Color.FromInt aus int-RGB-Werten, die zwischen 0 und 255 liegen.
  • Color.FromRgba aus float-RGBA-Werten, die zwischen 0 und 1 liegen.
  • Color.FromRgba aus double-RGBA-Werten, die zwischen 0 und 1 liegen.
  • Color.FromRgba aus byte-RGBA-Werten, die zwischen 0 und 255 liegen.
  • Color.FromRgba aus int-RGBA-Werten, die zwischen 0 und 255 liegen.
  • Color.FromRgba aus einem auf string-basierenden Hexadezimalwert in der Form „#RRGGBBAA“ oder „#RRGGBB“ oder „#RGBA“ oder „#RGB“, wobei jeder Buchstabe einer Hexadezimalziffer für den Alphakanal sowie den roten, grünen und blauen Kanal entspricht.
  • Color.FromHsla aus float-HSLA-Werten.
  • Color.FromHsla aus double-HSLA-Werten.
  • Color.FromHsv aus float-HSV-Werten, die zwischen 0 und 1 liegen.
  • Color.FromHsv aus 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 int-Wert, berechnet als (B + 256 * (G + 256 * (R + 256 * A))).
  • Color.FromUint für einen uint-Wert, berechnet als (B + 256 * (G + 256 * (R + 256 * A))).
  • Color.FromArgb aus einem auf string-basierenden Hexadezimalwert in der Form „#AARRGGBB“ oder „#RRGGBB“ oder „#ARGB“ oder „#RGB“, wobei jeder Buchstabe einer Hexadezimalziffer für den Alphakanal sowie den roten, grünen und blauen Kanal entspricht.

Hinweis

Zusätzlich zu den oben aufgeführten Methoden verfügt die Color-Klasse auch über Parse- und TryParse-Methoden, die Color-Objekte aus string-Argumenten erstellen.

Ein einmal erstelltes Color-Objekt ist unveränderlich. Die Farbeigenschaften können aus den folgenden float-Feldern von 0 bis 1 abgelesen werden:

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

Darüber hinaus können die Farbeigenschaften mit den folgenden Methoden bestimmt werden:

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

Benannte Farben

In der Colors-Klasse sind 148 öffentliche statische schreibgeschützte Felder für gängige Farben wie AntiqueWhite, MidnightBlue und YellowGreen definiert.

Ändern von Farben

Folgende Instanzmethoden ändern eine bestehende Farbe in eine neue Farbe:

  • AddLuminosity gibt Color zurück, indem der Leuchtdichtewert zum angegebenen Deltawert addiert wird.
  • GetComplementary gibt das komplementäre Color zurück.
  • MultiplyAlpha gibt einen Color zurück, indem der Alphawert mit dem angegebenen float-Wert multipliziert wird.
  • WithAlpha gibt einen Color zurück, wobei der Alphawert durch den angegebenen float-Wert ersetzt wird.
  • WithHue gibt einen Color zurück, wobei der Farbtonwert durch den angegebenen float-Wert ersetzt wird.
  • WithLuminosity gibt eine Color zurück, die den Leuchtdichtewert durch den angegebenen float-Wert ersetzt.
  • WithSaturation gibt eine Color zurück, die den Sättigungswert durch den angegebenen float-Wert ersetzt.

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 einer Color zurück.
  • ToArgbHex gibt eine hexadezimale string-ARGB-Darstellung einer Color zurück.
  • ToRgbaHex gibt eine hexadezimale string-RGBA-Darstellung einer Color zurück.
  • ToInt gibt eine int-ARGB-Darstellung einer Color zurück.
  • ToUint gibt eine uint-ARGB-Darstellung einer Color zurück.
  • ToRgb konvertiert eine Color in byte-RGB-Werte, die als out-Argumente zurückgegeben werden.
  • ToRgba konvertiert eine Color in byte-RGBA-Werte, die als out-Argumente zurückgegeben werden.
  • ToHsl konvertiert eine Color in float-HSL-Werte, die als out-Argumente weitergegeben werden.

Beispiele

In XAML wird auf Farben in der Regel mithilfe der entsprechenden benannten Werte oder mit Hexadezimalwerten verwiesen:

<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# wird auf Farben in der Regel mithilfe der entsprechenden benannten Werte oder mit den zugehörigen statischen Methoden verwiesen:

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