Đặt màu nền của Hộp văn bản WPF theo mã C #


181

Làm cách nào tôi có thể thay đổi màu nền và màu nền trước của Hộp văn bản WPF theo chương trình trong C #?

Câu trả lời:


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

WPF Tiền cảnh và Nền là loại System.Windows.Media.Brush. Bạn có thể đặt màu khác như thế này:

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
Nếu chúng ta muốn đặt một giá trị hex cho thuộc tính màu, làm thế nào nó có thể được thực hiện ??
Sauron

11
Bạn có thể sử dụng một cái gì đó như Brush Brush = new SolidColorBrush (Color.FromRgb (r, g, b));
Timbo

3
Ngoài ra còn có nhiều người xinh đẹp hơn LinearGradientBrush:)
BlueRaja - Danny Pflughoeft

6
Hãy chắc chắn bao gồm System.Windows.Media.
mack 20/12/13

98

Nếu bạn muốn đặt nền bằng màu hex, bạn có thể làm điều này:

var bc = new BrushConverter();

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

Hoặc bạn có thể thiết lập tài nguyên SolidColorBrush trong XAML, sau đó sử dụng findResource trong mã phía sau:

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

Tốt hơn hết là sử dụng (System.Windows.Media.Brush)Application.Current.FindResource("BrushFFXXXXX");vì ứng dụng của bạn sẽ không ném ngoại lệ luồng nếu được nâng cấp để sử dụng nhiều luồng xử lý trong tương lai.
Contango

24

Tôi hiểu bạn đang tạo TextBox trong XAML?

Trong trường hợp đó, bạn cần đặt tên cho hộp văn bản. Sau đó, trong mã phía sau, bạn có thể đặt thuộc tính Nền bằng nhiều loại cọ khác nhau. Đơn giản nhất trong số đó là SolidColorBrush:

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

6

Bạn có thể chuyển đổi hex sang RGB:

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

5

Bạn có thể sử dụng màu hex:

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

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.