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.
Color
nesneleri, 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çindouble
.Color.FromRgb
0 ile 255 tamsayı RGB değerleri için.Color.FromRgba
saydamlık ile RGB değerleri içindouble
.Color.FromRgba
saydamlık içeren tamsayı RGB değerleri için.Color.FromHsla
saydamlık içeren HSL değerleri içindouble
.Color.FromHsv
0 ile 1 HSV değerleri içindouble
.Color.FromHsv
0 ile 255 olan tamsayı HSV değerleri için.Color.FromHsva
saydamlık içeren HSV değerleri içindouble
.Color.FromHsva
saydamlık içeren tamsayı HSV değerleri için.Color.FromUint
(B + 256 * (G + 256 * (R + 256 * A))) olarak hesaplanan biruint
değer için.Color.FromHex
string
"#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 AliceBlue
ortak 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 birColor
döndürür.MultiplyAlpha
, alfayı değiştirerek ve sağlanan alfa değeriyle çarparak aColor
döndürür.ToHex
, bir öğesinin onaltılıkstring
gösteriminiColor
döndürür.WithHue
, tonunu sağlanan değerle değiştirerek birColor
döndürür.WithLuminosity
, parlaklığı sağlanan değerle değiştirerek değeriniColor
döndürür.WithSaturation
Color
bir 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
};