Kolory
Klasa Color w Microsoft.Maui.Graphics przestrzeni nazw umożliwia określenie kolorów jako wartości Red-Green-Blue (RGB), Hue-Saturation-Luminosity (HSL), Hue-Saturation-Value (HSV) lub z nazwą koloru. Kanał alfa jest również dostępny, aby wskazać przezroczystość.
Color obiekty można tworzyć za pomocą Color konstruktorów, których można użyć do określenia szarego cienia, wartości RGB lub wartości RGB z przezroczystością. Przeciążenia konstruktora akceptują float
wartości z zakresu od 0 do 1, byte
i int
wartości.
Do tworzenia Color obiektów można również użyć następujących metod statycznych:
Color.FromRgb
odfloat
wartości RGB z zakresu od 0 do 1.Color.FromRgb
oddouble
wartości RGB z zakresu od 0 do 1.Color.FromRgb
odbyte
wartości RGB, które wahają się od 0 do 255.Color.FromInt
odint
wartości RGB, które wahają się od 0 do 255.Color.FromRgba
odfloat
wartości RGBA, które wahają się od 0 do 1.Color.FromRgba
oddouble
wartości RGBA, które wahają się od 0 do 1.Color.FromRgba
odbyte
wartości RGBA, które wahają się od 0 do 255.Color.FromRgba
odint
wartości RGBA, które wahają się od 0 do 255.Color.FromRgba
string
na podstawie wartości szesnastkowej w postaci "#RRGGBBAA" lub "#RRGGBB" lub "#RGBA" lub "#RGB", gdzie każda litera odpowiada cyfrze szesnastkowej dla kanałów alfa, czerwony, zielony i niebieski.Color.FromHsla
zfloat
wartości HSLA.Color.FromHsla
zdouble
wartości HSLA.Color.FromHsv
odfloat
wartości HSV, które wahają się od 0 do 1.Color.FromHsv
odint
wartości HSV, które wahają się od 0 do 255.Color.FromHsva
zfloat
wartości HSVA.Color.FromHsva
zint
wartości HSV.Color.FromInt
od wartości obliczonejint
jako (B + 256 * (G + 256 * (R + 256 * A)).Color.FromUint
od wartości obliczonejuint
jako (B + 256 * (G + 256 * (R + 256 * A)).Color.FromArgb
string
na podstawie wartości szesnastkowej w postaci "#AARRGGBB" lub "#RRGGBB" lub "#ARGB" lub "RGB", gdzie każda litera odpowiada cyfrze szesnastkowej dla kanałów alfa, czerwony, zielony i niebieski.
Uwaga
Oprócz metod wymienionych powyżej klasa Color ma Parse również metody i TryParse , które tworzą Color obiekty na podstawie string
argumentów.
Po utworzeniu Color obiekt jest niezmienny. Cechy koloru można uzyskać z następujących float
pól, które wahają się od 0 do 1:
- Red, który reprezentuje czerwony kanał koloru.
- Green, który reprezentuje zielony kanał koloru.
- Blue, który reprezentuje niebieski kanał koloru.
- Alpha, który reprezentuje kanał alfa koloru.
Ponadto cechy koloru można uzyskać z następujących metod:
- GetHue, który zwraca wartość
float
reprezentującą kanał odcieni koloru. - GetSaturation, który zwraca element
float
reprezentujący kanał nasycenia koloru. - GetLuminosity, który zwraca wartość
float
reprezentującą kanał jaskrawości koloru.
Nazwane kolory
Klasa Colors definiuje 148 publicznych pól statycznych tylko do odczytu dla typowych kolorów, takich jak AntiqueWhite
, MidnightBlue
i YellowGreen
.
Modyfikowanie koloru
Następujące metody wystąpienia modyfikują istniejący kolor, aby utworzyć nowy kolor:
- AddLuminosity zwraca wartość a Color przez dodanie wartości świetlistości do podanej wartości różnicowej.
- GetComplementary zwraca wartość uzupełniającą Color.
- MultiplyAlpha zwraca wartość a Color przez pomnożenie wartości alfa przez podaną
float
wartość. - WithAlpha Zwraca wartość Color, zastępując wartość alfa podaną
float
wartością. - WithHue Zwraca wartość Color, zastępując wartość hue podaną
float
wartością. - WithLuminosity Zwraca wartość Color, zastępując wartość jaskrawości podaną
float
wartością. - WithSaturation Zwraca wartość Color, zastępując wartość nasycenia podaną
float
wartością.
Konwersje
Następujące metody wystąpienia konwertują Color element na alternatywną reprezentację:
- AsPaintSolidPaint Zwraca obiekt, którego Color właściwość jest ustawiona na kolor.
- ToHex Zwraca reprezentację szesnastkowa
string
obiektu Color. - ToArgbHex zwraca reprezentację szesnastkową
string
ARGB obiektu Color. - ToRgbaHex Zwraca reprezentację szesnastkową
string
RGBA obiektu Color. - ToInt Zwraca reprezentację ARGB
int
obiektu Color. - ToUint Zwraca reprezentację ARGB
uint
obiektu Color. - ToRgb Konwertuje wartości na Color RGB
byte
, które są zwracane jakoout
argumenty. - ToRgba Konwertuje wartości na Color RGBA
byte
, które są zwracane jakoout
argumenty. - ToHsl Konwertuje Color wartość na wartości HSL
float
, które są przekazywane jakoout
argumenty.
Przykłady
W języku XAML kolory są zwykle przywoływały przy użyciu nazwanych wartości lub szesnastkowe:
<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" />
W języku C# kolory są zwykle przywołyyzowane przy użyciu nazwanych wartości lub ze statycznymi metodami:
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) };
W poniższym przykładzie OnPlatform
użyto rozszerzenia znaczników, aby selektywnie ustawić kolor elementu ActivityIndicator:
<ActivityIndicator Color="{OnPlatform AliceBlue, iOS=MidnightBlue}"
IsRunning="True" />
Równoważny kod języka C# to:
ActivityIndicator activityIndicator = new ActivityIndicator
{
Color = DeviceInfo.Platform == DevicePlatform.iOS ? Colors.MidnightBlue : Colors.AliceBlue,
IsRunning = true
};