Saya ingin membuat SolidColorBrush dari nilai Hex seperti #ffaacc. Bagaimana saya bisa melakukan ini?
Di MSDN, saya mendapat:
SolidColorBrush mySolidColorBrush = new SolidColorBrush();
mySolidColorBrush.Color = Color.FromArgb(255, 0, 0, 255);
Jadi saya menulis (mengingat metode saya menerima warna sebagai #ffaacc
):
Color.FromRgb(
Convert.ToInt32(color.Substring(1, 2), 16),
Convert.ToInt32(color.Substring(3, 2), 16),
Convert.ToInt32(color.Substring(5, 2), 16));
Tapi ini memberi kesalahan sebagai
The best overloaded method match for 'System.Windows.Media.Color.FromRgb(byte, byte, byte)' has some invalid arguments
Juga 3 kesalahan sebagai: Cannot convert int to byte.
Tapi bagaimana contoh MSDN bekerja?
Jawaban:
Coba ini sebagai gantinya:
sumber
Bagaimana cara mendapatkan Warna dari kode warna Heksadesimal menggunakan .NET?
Saya pikir ini adalah apa yang Anda cari, semoga menjawab pertanyaan Anda.
Agar kode Anda berfungsi, gunakan Convert.ToByte daripada Convert.ToInt ...
sumber
Saya telah menggunakan:
sumber
sumber
Jika Anda tidak ingin berurusan dengan sakitnya konversi setiap kali cukup buat metode ekstensi.
Kemudian gunakan seperti ini:
BackColor = "#FFADD8E6".ToBrush()
Bergantian jika Anda bisa memberikan metode untuk melakukan hal yang sama.
sumber
versi vb.net
sumber