Farben
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.
Sie können auch die folgenden statischen Methoden verwenden, um Color-Objekte zu erstellen:
Color.FromRgb
ausfloat
-RGB-Werten, die zwischen 0 und 1 liegen.Color.FromRgb
ausdouble
-RGB-Werten, die zwischen 0 und 1 liegen.Color.FromRgb
ausbyte
-RGB-Werten, die zwischen 0 und 255 liegen.Color.FromInt
ausint
-RGB-Werten, die zwischen 0 und 255 liegen.Color.FromRgba
ausfloat
-RGBA-Werten, die zwischen 0 und 1 liegen.Color.FromRgba
ausdouble
-RGBA-Werten, die zwischen 0 und 1 liegen.Color.FromRgba
ausbyte
-RGBA-Werten, die zwischen 0 und 255 liegen.Color.FromRgba
ausint
-RGBA-Werten, die zwischen 0 und 255 liegen.Color.FromRgba
aus einem aufstring
-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
ausfloat
-HSLA-Werten.Color.FromHsla
ausdouble
-HSLA-Werten.Color.FromHsv
ausfloat
-HSV-Werten, die zwischen 0 und 1 liegen.Color.FromHsv
ausint
-HSV-Werten, die zwischen 0 und 255 liegen.Color.FromHsva
ausfloat
-HSVA-Werten.Color.FromHsva
ausint
-HSV-Werten.Color.FromInt
aus einemint
-Wert, berechnet als (B + 256 * (G + 256 * (R + 256 * A))).Color.FromUint
für einenuint
-Wert, berechnet als (B + 256 * (G + 256 * (R + 256 * A))).Color.FromArgb
aus einem aufstring
-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 alsout
-Argumente zurückgegeben werden. - ToRgba konvertiert eine Color in
byte
-RGBA-Werte, die alsout
-Argumente zurückgegeben werden. - ToHsl konvertiert eine Color in
float
-HSL-Werte, die alsout
-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
};