Renkler: Xamarin.Forms

Bu Color yapı renkleri Kırmızı-Yeşil-Mavi (RGB) değerleri, Hue-Doygunluk-Parlaklık (HSL) değerleri, Hue-Doygunluk-Değer (HSV) değerleri olarak veya bir renk adıyla belirtmenize olanak tanır. Saydamlığı göstermek için bir Alfa kanalı da kullanılabilir.

Colornesneleri, gri bir gölge, RGB değeri veya saydamlık içeren bir RGB değeri belirtmek için kullanılabilen oluşturucularla oluşturulabilirColor. Her durumda, bağımsız değişkenler 0 ile 1 arasında değişen değerlerdir double .

Nesneleri oluşturmak Color için statik yöntemler de kullanabilirsiniz:

  • Color.FromRgb 0'dan 1'e RGB değerleri için double .
  • Color.FromRgb 0 ile 255 tamsayı RGB değerleri için.
  • Color.FromRgba saydamlık ile RGB değerleri için double .
  • Color.FromRgba saydamlık içeren tamsayı RGB değerleri için.
  • Color.FromHsla saydamlık içeren HSL değerleri için double .
  • Color.FromHsv 0 ile 1 HSV değerleri için double .
  • Color.FromHsv 0 ile 255 olan tamsayı HSV değerleri için.
  • Color.FromHsva saydamlık içeren HSV değerleri için double .
  • Color.FromHsva saydamlık içeren tamsayı HSV değerleri için.
  • Color.FromUint (B + 256 * (G + 256 * (R + 256 * A))) olarak hesaplanan bir uint değer için.
  • Color.FromHexstring"#AARRGGBB" veya "#RRGGBB" ya da "#ARGB" ya da "#RGB" biçiminde onaltılık basamak biçimi için, burada her harf alfa, kırmızı, yeşil ve mavi kanalların onaltılık basamaklarına karşılık gelir.

Bir nesne oluşturulduktan Color sonra sabittir. Rengin özellikleri aşağıdaki özelliklerden elde edilebilir:

  • R, rengin kırmızı kanalını temsil eder.
  • G, rengin yeşil kanalını temsil eder.
  • B, rengin mavi kanalını temsil eder.
  • A, rengin alfa kanalını temsil eder.
  • Hue, rengin ton kanalını temsil eder.
  • Saturation, rengin doygunluk kanalını temsil eder.
  • Luminosity, rengin parlaklık kanalını temsil eder.

Bu özelliklerin tümü double 0 ile 1 arasında değişen değerlerdir.

Adlandırılmış renkler

Yapı Color ayrıca gibi AliceBlueortak renkler için 240 genel statik salt okunur alan tanımlar.

Color.Accent

Değer, Color.Accent koyu veya açık arka planda görünen platforma özgü (ve bazen kullanıcı tarafından seçilebilen) bir renkle sonuçlanır.

Color.Default

Color.Default değeri, tüm kanalların -1 olarak ayarlandığı bir Color değerini tanımlar ve platformun renk düzenini zorunlu kılmaya yöneliktir. Sonuç olarak, farklı platformlarda farklı bağlamlarda farklı bir anlamı vardır. Varsayılan olarak platform renk düzenleri şunlardır:

  • iOS: Açık arka planda koyu metin.
  • Android: Açık arka planda koyu metin.
  • Windows: Açık arka planda koyu metin.

Color.Transparent

Color.Transparent değeri, tüm kanalların sıfır olarak ayarlandığı bir Color değerini tanımlar.

Rengi değiştirme

Çeşitli örnek yöntemleri, yeni bir renk oluşturmak için var olan bir rengin değiştirilmesine izin verir:

  • AddLuminosity sağlanan delta tarafından parlaklığı değiştirerek bir Color döndürür.
  • MultiplyAlpha , alfayı değiştirerek ve sağlanan alfa değeriyle çarparak a Color döndürür.
  • ToHex , bir öğesinin onaltılık string gösterimini Colordöndürür.
  • WithHue , tonunu sağlanan değerle değiştirerek bir Colordöndürür.
  • WithLuminosity , parlaklığı sağlanan değerle değiştirerek değerini Colordöndürür.
  • WithSaturationColorbir döndürür ve doygunluğu sağlanan değerle değiştirir.

Örtük dönüştürmeler

ve System.Drawing.Color türleri arasında Xamarin.Forms.Color örtük dönüştürme gerçekleştirilebilir:

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;

Örnekler

XAML'de renklere genellikle adlandırılmış değerleri kullanılarak veya Onaltılık gösterimleriyle başvurulur:

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

Not

XAML derlemesi kullanılırken renk adları büyük/küçük harfe duyarlı değildir ve bu nedenle küçük harfle yazılabilir. XAML derlemesi hakkında daha fazla bilgi için bkz . XAML Derlemesi.

C# dilinde renklere genellikle adlandırılmış değerleri kullanılarak veya statik yöntemleriyle başvurulur:

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

Aşağıdaki örnek, bir ActivityIndicatoröğesinin OnPlatform rengini seçmeli olarak ayarlamak için işaretleme uzantısını kullanır:

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

Eşdeğer C# kodu:

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