Warna dalam Xamarin.Forms
Struktur ini Color
memungkinkan Anda menentukan warna sebagai nilai Red-Green-Blue (RGB), nilai Hue-Saturation-Luminosity (HSL), nilai Hue-Saturation-Value (HSV), atau dengan nama warna. Saluran Alpha juga tersedia untuk menunjukkan transparansi.
Color
objek dapat dibuat dengan Color
konstruktor, yang dapat digunakan untuk menentukan warna abu-abu, nilai RGB, atau nilai RGB dengan transparansi. Dalam semua kasus, argumen adalah double
nilai mulai dari 0 hingga 1.
Anda juga dapat menggunakan metode statis untuk membuat Color
objek:
Color.FromRgb
untukdouble
nilai RGB dari 0 hingga 1.Color.FromRgb
untuk nilai RGB bilangan bulat dari 0 hingga 255.Color.FromRgba
untukdouble
nilai RGB dengan transparansi.Color.FromRgba
untuk nilai RGB bilangan bulat dengan transparansi.Color.FromHsla
untukdouble
nilai HSL dengan transparansi.Color.FromHsv
untukdouble
nilai HSV dari 0 hingga 1.Color.FromHsv
untuk nilai HSV bilangan bulat dari 0 hingga 255.Color.FromHsva
untukdouble
nilai HSV dengan transparansi.Color.FromHsva
untuk nilai HSV bilangan bulat dengan transparansi.Color.FromUint
untuk nilai yanguint
dihitung sebagai (B + 256 * (G + 256 * (R + 256 * A)))).Color.FromHex
string
untuk format digit heksadesimal dalam bentuk "#AARRGGBB" atau "#RRGGBB" atau "#ARGB" atau "#RGB", di mana setiap huruf sesuai dengan digit heksadesimal untuk saluran alfa, merah, hijau, dan biru.
Setelah dibuat, Color
objek tidak dapat diubah. Karakteristik warna dapat diperoleh dari properti berikut:
R
, yang mewakili saluran merah warna.G
, yang mewakili saluran hijau warna.B
, yang mewakili saluran biru warna.A
, yang mewakili saluran alfa warna.Hue
, yang mewakili saluran warna warna.Saturation
, yang mewakili saluran saturasi warna.Luminosity
, yang mewakili saluran luminositas warna.
Properti ini adalah semua double
nilai mulai dari 0 hingga 1.
Warna bernama
Struktur ini Color
juga mendefinisikan 240 bidang baca-saja statis publik untuk warna umum, seperti AliceBlue
.
Color.Accent
Nilai menghasilkan Color.Accent
warna khusus platform (dan terkadang dapat dipilih pengguna) yang terlihat di latar belakang gelap atau terang.
Color.Default
Nilai Color.Default
mendefinisikan dengan semua saluran yang Color
diatur ke -1, dan dimaksudkan untuk memberlakukan skema warna platform. Akibatnya, ia memiliki arti yang berbeda dalam konteks yang berbeda pada platform yang berbeda. Secara default, skema warna platform adalah:
- iOS: teks gelap pada latar belakang terang.
- Android: teks gelap di latar belakang terang.
- Windows: teks gelap pada latar belakang terang.
Color.Transparent
Nilai Color.Transparent
menentukan dengan semua saluran yang Color
diatur ke nol.
Mengubah warna
Beberapa metode instans memungkinkan memodifikasi warna yang ada untuk membuat warna baru:
AddLuminosity
mengembalikan denganColor
memodifikasi luminositas oleh delta yang disediakan.MultiplyAlpha
mengembalikan denganColor
memodifikasi alfa, mengalikannya dengan nilai alfa yang disediakan.ToHex
mengembalikan representasi heksadesimalstring
dariColor
.WithHue
Color
mengembalikan , mengganti rona dengan nilai yang disediakan.WithLuminosity
Color
mengembalikan , mengganti luminositas dengan nilai yang disediakan.WithSaturation
Color
mengembalikan , mengganti saturasi dengan nilai yang disediakan.
Konversi implisit
Konversi implisit antara Xamarin.Forms.Color
jenis dan System.Drawing.Color
dapat dilakukan:
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;
Contoh
Di XAML, warna biasanya dirujuk menggunakan nilai bernama mereka, atau dengan representasi Hex mereka:
<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" />
Catatan
Saat menggunakan kompilasi XAML, nama warna tidak peka huruf besar/kecil dan karenanya dapat ditulis dalam huruf kecil. Untuk informasi selengkapnya tentang kompilasi XAML, lihat Kompilasi XAML.
Dalam C#, warna biasanya dirujuk menggunakan nilai bernama, atau dengan metode statisnya:
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) };
Contoh berikut menggunakan OnPlatform
ekstensi markup untuk secara selektif mengatur warna ActivityIndicator
:
<ActivityIndicator Color="{OnPlatform iOS=Black, Default=Default}"
IsRunning="True" />
Kode C# yang setara adalah:
ActivityIndicator activityIndicator = new ActivityIndicator
{
Color = Device.RuntimePlatform == Device.iOS ? Color.Black : Color.Default,
IsRunning = true
};