2009-06-11 13 views

Antwort

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

WPF Vordergrund und Hintergrund ist vom Typ System.Windows.Media.Brush. Sie können eine andere Farbe wie folgt einstellen:

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

Wenn wir einen Hex-Wert auf die Farbe Attribut gesetzt werden soll, wie es gemacht werden kann ?? – Sauron

+11

Man könnte so etwas wie Pinsel Pinsel = new SolidColorBrush (Color.FromRgb (r, g, b)) verwenden; – Timbo

+3

Es gibt auch die viel schönere 'LinearGradientBrush' :) –

21

Ich nehme an, Sie erstellen die TextBox in XAML? In diesem Fall müssen Sie dem Textfeld einen Namen geben. Im nachfolgenden Code können Sie dann die Hintergrundeigenschaft mithilfe verschiedener Pinsel festlegen. Die einfachste davon ist die SolidColorBrush:

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

Haben Sie sich Color.FromRgb angesehen?

85

Wenn Sie den Hintergrund mit einem Hex Farbe festlegen möchten können Sie dies tun:

var bc = new BrushConverter(); 

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

ODER

Sie eine SolidColorBrush Ressource in XAML einrichten konnte, und verwenden Sie dann Findresource in Code-Behind

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

Es ist viel vorzuziehen, '(System.Windows.Media.Brush) Application.Current.FindResource (" BrushFFXXXXX ");' zu verwenden, da Ihre Anwendung keine Threading-Ausnahme auslöst, wenn sie für die zukünftige Verwendung mehrerer Dispatcher-Threads aktualisiert wird . – Contango

6

können Sie konvertieren hex2rgb

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

Sie können Hex-Farben verwenden:

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