Sono un principiante al WPF.WPF: ripristino del pennello predefinito/originale
Al momento eseguo un controllo utente per gli elementi del modulo denominato "LabeledTextbox" che contiene un'etichetta, una casella di testo e un blocco di testo per i messaggi errati.
Quando il codice utilizzando aggiunge un messaggio errato, desidero mettere il bordo della casella di testo in rosso. Ma, quando viene rimosso il messaggio errato, mi piacerebbe tornare al bordercolor predefinito della casella di testo. Penso che ci debba essere un modo molto semplice per farlo.
Il mio codice:
(in pubblico classe LabeledTextbox parziale: UserControl)
public string ErrorMessage
{
set
{
if (string.IsNullOrEmpty(value))
{
_textbox.BorderBrush = Brushes.Black; //How do I revert to the original color in the most elegant way?
}
else
{
_textbox.BorderBrush = Brushes.Red;
}
_errorMessage.Text = value;
}
}
ottimo, grazie! * aggiunge la ricerca di dipendencyproperty all'elenco di cose da fare * –
Grazie, articolo molto utile. Ho provato a memorizzare il pennello predefinito con il metodo brush.clone, ma secondo .net nessun pennello esiste quando il suo sistema è predefinito. Grazie! – JustinKaz
Questo non ha funzionato per me. Faccio da sfondo ad Acquamarina quando voglio attirare l'attenzione su di esso. Ho provato a usare ClearValue per ripristinarlo ma è rimasto come Aquamarine. Guardando questo post: (http://wpf.2000things.com/tag/clearvalue/) mi è stato detto che ClearValue lo riporta all'ultimo valore assegnato. Così ho provato a impostare la proprietà Background su Nothing e ha funzionato. Lo sfondo dell'etichetta era ora il colore predefinito. – tolsen64