Atur warna latar belakang WPF Textbox dalam kode C #


183

Bagaimana saya bisa mengubah warna latar belakang dan latar depan dari WPF Textbox secara terprogram dalam C #?

Jawaban:


338
textBox1.Background = Brushes.Blue;
textBox1.Foreground = Brushes.Yellow;

Foreground dan Background WPF adalah tipe System.Windows.Media.Brush. Anda dapat mengatur warna lain seperti ini:

using System.Windows.Media;

textBox1.Background = Brushes.White;
textBox1.Background = new SolidColorBrush(Colors.White);
textBox1.Background = new SolidColorBrush(Color.FromArgb(0xFF, 0xFF, 0, 0));
textBox1.Background = System.Windows.SystemColors.MenuHighlightBrush;

2
Jika kita ingin mengatur nilai hex ke atribut warna, bagaimana itu bisa dilakukan ??
Sauron

11
Anda bisa menggunakan sesuatu seperti Brush brush = new SolidColorBrush (Color.FromRgb (r, g, b));
Timbo

3
Ada juga yang jauh lebih cantik LinearGradientBrush:)
BlueRaja - Danny Pflughoeft

6
Pastikan untuk memasukkan System.Windows.Media.
Mack

99

Jika Anda ingin mengatur latar belakang menggunakan warna hex Anda bisa melakukan ini:

var bc = new BrushConverter();

myTextBox.Background = (Brush)bc.ConvertFrom("#FFXXXXXX");

Atau Anda dapat mengatur sumber daya SolidColorBrush di XAML, dan kemudian gunakan findResource dalam kode di belakang:

<SolidColorBrush x:Key="BrushFFXXXXXX">#FF8D8A8A</SolidColorBrush>
myTextBox.Background = (Brush)Application.Current.MainWindow.FindResource("BrushFFXXXXXX");

Ini jauh lebih disukai untuk digunakan (System.Windows.Media.Brush)Application.Current.FindResource("BrushFFXXXXX");karena aplikasi Anda tidak akan melemparkan pengecualian threading jika ditingkatkan untuk menggunakan beberapa utas pengirim di masa mendatang.
Contango

24

Saya kira Anda membuat TextBox di XAML?

Dalam hal ini, Anda perlu memberi nama pada kotak teks tersebut. Kemudian dalam kode-belakang Anda kemudian dapat mengatur properti Background menggunakan berbagai kuas. Yang paling sederhana adalah SolidColorBrush:

myTextBox.Background = new SolidColorBrush(Colors.White);

6

Anda dapat mengkonversi hex ke RGB:

string ccode = "#00FFFF00";
int argb = Int32.Parse(ccode.Replace("#", ""), NumberStyles.HexNumber);
Color clr = Color.FromArgb(argb);

5

Anda dapat menggunakan warna hex:

your_contorl.Color = DirectCast(ColorConverter.ConvertFromString("#D8E0A627"), Color)

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.