2015-12-09 11 views
8

Ich habe eine WPF-Anwendung, in der ich mehrere Updates machen muss.WPF Textbox Rahmenfarbe von C# Code

Eines des Updates ist, dass ich von einem Label- zu einem TextBox bin Wechsel

ich in vielen Beispielen Textbox Grenze Farbe zu sehen von XAML gesetzt zu werden, dass wird nicht funktionieren für mich, da es Geschäftsregelbedingungen ein Rot oder Schwarz

habe ich versucht zu haben:

lblValidMsg.BorderBrush = Brushes.Red; 
lblValidMsg.BorderBrush = System.Drawing.Color.Red;  // converter.ConvertFromString("#FF0000"); //borderColor; 


lblValidMsg.BorderBrush = SystemColors.Control; 

private Color borderColor = Color.Gray; 

Ich bin sicher, dass es „einfach“ aber die Konstante verschiedene Fehler sind wie

Cannot implicitly convert type 'System.Drawing.Color' to 'System.Windows.Media.Brush' 

JA Ich bin mir bewusst, dass ich die Textbox Namen wie der Markenname der beginnend mit „LBL“

daher links Update:

ich sehe, dass die Menschen den Hintergrund und Vordergrund gesetzt, aber das ist nicht so, wie ich brauche

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

ich

versucht haben zu tun
lblValidMsg.BorderBrush = Brushes.Red; 

dass Typ 'System.Drawing.Color' auf 'System.Windows.Media.Brush'

+0

Kann helfen [Systemfarbe auf Schaltfläche festlegen] (https://stackoverflow.com/a/28722540/2122718]) oder [Hintergrundfarbe des Textfelds festlegen] (https://stackoverflow.com/a/979906/ 2122718) – marbel82

Antwort

18
textBox.BorderBrush = System.Windows.Media.Brushes.Red; 

Works gibt für mich kann nicht implizit konvertieren, stellen Sie sicher, dass Sie das System-nicht verwenden. Drawing.Brushes müssen Sie stattdessen den Windows.Media-Pinsel verwenden.

+0

Ja, das funktioniert, die Nachricht, die ich vermutete, war offensichtlich, aber du hast es geschafft! Danke! –

+1

funktioniert nicht für mich mit VS2017 CE –