2015-12-09 15 views
8

Ho un'applicazione WPF in cui devo effettuare diversi aggiornamenti.WPF set Textbox Colore del bordo dal codice C#

Uno degli aggiornamenti è che sto cambiando da un Label ad un TextBox

vedo in molti esempi di colore del bordo Casella di testo sempre impostato da XAML, che non è andare a lavorare per me come ci sono le condizioni regola aziendale per avere un rosso o nero

ho provato:

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


lblValidMsg.BorderBrush = SystemColors.Control; 

private Color borderColor = Color.Gray; 

Sono sicuro che si tratta di "semplice" ma gli errori differenti costanti sono come

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

sì, io sono consapevole del fatto che ho lasciato il nome di testo come il nome dell'etichetta da qui la inizia con "LBL"

Aggiornamento:

vedo che la gente impostare lo sfondo e di primo piano, ma non è questo modo ho bisogno di fare

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

ho provato

lblValidMsg.BorderBrush = Brushes.Red; 

che dà Impossibile convertire implicitamente il tipo 'System.Drawing.Color' a 'System.Windows.Media.Brush'

+0

Può aiutare [Imposta colore di sistema su pulsante] (https://stackoverflow.com/a/28722540/2122718]) o [Imposta colore di sfondo di Textbox] (https://stackoverflow.com/a/979906/ 2122718) – marbel82

risposta

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

funziona per me, assicurarsi che non si utilizza il sistema. Drawing.Brushes, è necessario utilizzare invece il pennello Windows.Media.

+0

Sì, funziona, il messaggio credo fosse ovvio, ma l'hai fatto! grazie! –

+1

non funziona con me utilizzando VS2017 CE –