WPF: le retour de la brosse à défaut/d'origine
Je suis un débutant complet à WPF.
Pour le moment, je suis en train de faire un usercontrol pour les éléments de formulaire appelé "LabeledTextbox" qui contient une étiquette, une zone de texte et un textblock pour errormessages.
Lors de l'utilisation de code ajoute un errormessage, je veux mettre de la frontière de la zone de texte en rouge. Mais, lorsque le errormessage est supprimée, j'aimerais retourner à la valeur par défaut bordercolor de la zone de texte.
Je pense que cela doit être un moyen très facile à faire.
Mon code:
(en public partial class 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;
}
}
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser
Qui permet de supprimer le directement affecté de la valeur et revenir à la valeur définie par le style ou le modèle.
Vous pouvez saisir les couleurs par défaut de la classe SystemColors
Voici la liste des toutes les couleurs du système:
http://msdn.microsoft.com/de-de/library/system.windows.systemcolors.aspx
Par défaut couleur de fond de la zone client:
Par défaut la couleur du texte à l'intérieur de la zone client:
Je suis peut être en retard à la fête, mais pour les futurs lecteurs, vous pouvez également utiliser
Button.BackgroundProperty.DefaultMetadata.DefaultValue
à cette fin. Ceci est particulièrement utile lorsque vous utilisez un Convertisseur où vous avez besoin de renvoyer une valeur et ne peut donc pas utiliserClearValue()
appel.Fait ce travail? Le paramètre le noir est mieux que d'utiliser le ClearValue méthode
Juste stocker les paramètres par défaut. Voici un code excample.