Je suis un débutant complet à WPF.WPF: rétablir le pinceau par défaut/original
En ce moment je fais un usercontrol pour les éléments de formulaire appelés "LabeledTextbox" qui contient un label, une zone de texte et un bloc de texte pour les messages d'erreur.
Lorsque le code using ajoute un message d'erreur, je veux mettre la bordure de la zone de texte en rouge. Mais, quand l'erreur est supprimée, je voudrais revenir à la bordure par défaut de la zone de texte. Je pense qu'il doit y avoir un moyen très facile de le faire.
Mon code:
(en classe partielle publique LabeledTextbox: 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;
}
}
super, merci! * ajoute dependencyproperty research à la liste de choses à faire * –
Merci, article très utile. J'ai essayé de stocker le pinceau par défaut par la méthode brush.clone mais selon .net aucun pinceau n'existe quand son système par défaut. Je vous remercie! – JustinKaz
Cela n'a pas fonctionné pour moi. Je définis l'arrière-plan à Aquamarine quand je veux attirer l'attention. J'ai essayé d'utiliser le ClearValue pour le rétablir mais il est resté comme Aquamarine. En regardant ce post: (http://wpf.2000things.com/tag/clearvalue/) m'a dit que ClearValue le rétablit à la dernière valeur assignée. J'ai donc essayé de définir la propriété Background sur Nothing et cela a fonctionné. L'arrière-plan de l'étiquette était maintenant la couleur par défaut. – tolsen64