Establecer el color de fondo del cuadro de texto WPF en código C #


183

¿Cómo puedo cambiar los colores de fondo y primer plano de un cuadro de texto WPF mediante programación en C #?

Respuestas:


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

WPF Foreground and Background es de tipo System.Windows.Media.Brush. Puede configurar otro color como este:

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
Si queremos establecer un valor hexadecimal para el atributo de color, ¿cómo se puede hacer?
Sauron

11
Podría usar algo como Pincel pincel = nuevo SolidColorBrush (Color.FromRgb (r, g, b));
Timbo

3
También está el mucho más bonito LinearGradientBrush:)
BlueRaja - Danny Pflughoeft

66
Asegúrese de incluir System.Windows.Media.
mack

99

Si desea establecer el fondo con un color hexadecimal, puede hacer esto:

var bc = new BrushConverter();

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

O puede configurar un recurso SolidColorBrush en XAML y luego usar findResource en el código subyacente:

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

Es preferible usarlo, (System.Windows.Media.Brush)Application.Current.FindResource("BrushFFXXXXX");ya que su aplicación no generará una excepción de subprocesos si se actualiza para usar múltiples subprocesos de despachador en el futuro.
Contango

24

¿Supongo que estás creando TextBox en XAML?

En ese caso, debe darle un nombre al cuadro de texto. Luego, en el código subyacente, puede establecer la propiedad Fondo utilizando una variedad de pinceles. El más simple de los cuales es el SolidColorBrush:

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

6

Puede convertir hexadecimal a RGB:

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

5

Puedes usar colores hexadecimales:

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

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.