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 #?

Sauron
sumber

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;
Timbo
sumber
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");
Danield
sumber
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);
James Hay
sumber
6

Anda dapat mengkonversi hex ke RGB:

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

Anda dapat menggunakan warna hex:

your_contorl.Color = DirectCast(ColorConverter.ConvertFromString("#D8E0A627"), Color)
Mwaffak Jamal Zakariya
sumber
2

Apakah Anda sudah melihatnya Color.FromRgb?

Daniel
sumber