Colors

Przeglądaj przykład. Przeglądanie przykładu

Klasa Color, znajdująca się w przestrzeni nazw Microsoft.Maui.Graphics, 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. Dostępny jest również kanał alfa, który wskazuje 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ą wartości float z zakresu od 0 do 1, byte, i int.

Uwaga / Notatka

Domyślny Color konstruktor tworzy czarny Color obiekt.

Do tworzenia Color obiektów można również użyć następujących metod statycznych:

  • Color.FromRgb od float wartości RGB z zakresu od 0 do 1.
  • Color.FromRgb od double wartości RGB z zakresu od 0 do 1.
  • Color.FromRgb od byte wartości RGB, które wahają się od 0 do 255.
  • Color.FromInt od int wartości RGB, które wahają się od 0 do 255.
  • Color.FromRgba od wartości RGBA float, które mieszczą się w zakresie od 0 do 1.
  • Color.FromRgba od wartości RGBA double, które mieszczą się w zakresie od 0 do 1.
  • Color.FromRgba od byte wartości RGBA mieszczących się od 0 do 255.
  • Color.FromRgba od int wartości RGBA mieszczących się od 0 do 255.
  • Color.FromRgba stringna 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 z float wartości HSLA.
  • Color.FromHsla z double wartości HSLA.
  • Color.FromHsv z wartości HSV float, które mieszczą się w zakresie od 0 do 1.
  • Color.FromHsv od int wartości HSV, które wahają się od 0 do 255.
  • Color.FromHsva z float wartości HSVA.
  • Color.FromHsva na podstawie int wartości HSV.
  • Color.FromInt od wartości obliczonej int jako (B + 256 * (G + 256 * (R + 256 * A)).
  • Color.FromUint od wartości obliczonej uint jako (B + 256 * (G + 256 * (R + 256 * A)).
  • Color.FromArgb stringna 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 / Notatka

Oprócz metod wymienionych powyżej klasa Color ma także metody Parse i TryParse, które tworzą obiekty Color z argumentów string.

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, MidnightBluei YellowGreen.

Modyfikowanie koloru

Następujące metody instancji modyfikują istniejący kolor, aby utworzyć nowy kolor.

  • AddLuminosity zwraca wartość Color przez dodanie wartości luminancji do podanej wartości delta.
  • 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ą.

Conversions

Następujące metody instancji konwertują Color element na alternatywną reprezentację:

  • AsPaint SolidPaint Zwraca obiekt, którego Color właściwość jest ustawiona na kolor.
  • ToHex Zwraca reprezentację szesnastkowa string obiektu Color.
  • ToArgbHex zwraca szesnastkową reprezentację string ARGB danej 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 Color na wartości RGB byte, które są zwracane jako argumenty out.
  • ToRgba konwertuje Color na wartości RGBA byte, które są zwracane jako argumenty out.
  • ToHsl konwertuje Color na wartości HSL float, które są przekazywane jako argumenty out.

Examples

W XAML kolory są zwykle przywoływane przy użyciu nazwanych wartości lub wartości szesnastkowych.

<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ływane przy użyciu nazwanych wartości lub za pomocą ich statycznych metod.

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