Barvy v Xamarin.Forms

Ukázka stažení Stažení ukázky

ColorStruktura vám umožní určit barvy jako hodnoty červené barvy (RGB), hodnoty odstín a sytost (HSL), hodnoty odstín a sytost-hodnota (HSV), nebo s názvem barvy. Pro indikaci transparentnosti je k dispozici také alfa kanál.

Colorobjekty lze vytvořit pomocí Color konstruktorů, které lze použít k určení Xamarin_Forms Color _Color__ctor_System_Double_ "data-LINKTYPE =" absolutní cestu ">šedý odstín , Xamarin_Forms Color _Color__ctor_System_Double_System_Double_System_Double_" data-linktype = "absolutní cesta" >hodnota RGB nebo Xamarin_Forms _Color__ctor_System_Double_System_Double_System_Double_System_Double_ "data-LINKTYPE =" absolutní cesta ">hodnota RGB s průhledností . Ve všech případech jsou argumenty double hodnoty v rozsahu od 0 do 1.

Pro vytváření objektů můžete použít také statické metody Color :

Po vytvoření Color je objekt neměnný. Vlastnosti barvy lze získat z následujících vlastností:

Tyto vlastnosti jsou všechny double hodnoty od 0 do 1.

Pojmenované barvy

ColorStruktura také definuje 240 veřejných statických polí jen pro čtení pro běžné barvy, jako je například AliceBlue .

Color. akcent

Xamarin_Forms _Color_Accent "data-LINKTYPE =" absolutní cesta ">value má Color.Accent za následek určitou barvu specifickou pro platformu (a někdy uživatelsky vybranou), která je viditelná buď na tmavém, nebo na světlém pozadí.

Color. Default

Xamarin_Forms _Color_Default "data-LINKTYPE =" absolutní cesta ">Color.Default Value definuje a má Color všechny kanály nastavené na hodnotu-1 a je určena k vymáhání barevného schématu platformy. V důsledku toho má jiný význam v různých kontextech na různých platformách. Ve výchozím nastavení jsou barevná schémata platformy:

  • iOS: tmavý text na světlém pozadí.
  • Android: tmavý text na světlém pozadí.
  • Windows: tmavý text na světlém pozadí.

Color. Transparent

Color.TransparentHodnota definuje Color se všemi kanály nastavenými na hodnotu nula.

Úprava barvy

Několik metod instancí povoluje úpravu stávající barvy pro vytvoření nové barvy:

Implicitní převody

Je možné provést implicitní převod mezi Xamarin.Forms.ColorSystem.Drawing.Color typy a:

Xamarin.Forms.Color xfColor = Xamarin.Forms.Color.FromRgb(0, 72, 255);
System.Drawing.Color sdColor = System.Drawing.Color.FromArgb(38, 127, 0);

// Implicity convert from a Xamarin.Forms.Color to a System.Drawing.Color
System.Drawing.Color sdColor2 = xfColor;

// Implicitly convert from a System.Drawing.Color to a Xamarin.Forms.Color
Xamarin.Forms.Color xfColor2 = sdColor;

Příklady

V jazyce XAML jsou barvy obvykle odkazovány pomocí jejich pojmenovaných hodnot nebo s jejich šestnáctkovými reprezentacemi:

<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" />

Poznámka

Při použití kompilace XAML se v názvech barev rozlišuje malá a velká písmena, proto je lze zapsat malými písmeny. Další informace o kompilaci XAML naleznete v tématu kompilace XAML.

V jazyce C# jsou barvy obvykle odkazovány pomocí jejich pojmenovaných hodnot nebo pomocí jejich statických metod:

Label red    = new Label { Text = "Red",    TextColor = Color.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) };

Následující příklad používá OnPlatform rozšíření značek k selektivnímu nastavení barvy prvku ActivityIndicator :

<ActivityIndicator Color="{OnPlatform iOS=Black, Default=Default}"
                   IsRunning="True" />

Ekvivalentní kód jazyka C#:

ActivityIndicator activityIndicator = new ActivityIndicator
{
    Color = Device.RuntimePlatform == Device.iOS ? Color.Black : Color.Default,
    IsRunning = true
};