Câu trả lời:
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;
LinearGradientBrush
:)
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");
(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.
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);
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);
Bạn có thể sử dụng màu hex:
your_contorl.Color = DirectCast(ColorConverter.ConvertFromString("#D8E0A627"), Color)