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

Sauron
fuente

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

Puede convertir hexadecimal a RGB:

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

Puedes usar colores hexadecimales:

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

¿Has echado un vistazo Color.FromRgb?

Daniel
fuente