IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Presentation Foundation Discussion :

DatePicker - Changer le "Watermark" Sélectionner une date


Sujet :

Windows Presentation Foundation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Avril 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Technicien réseau

    Informations forums :
    Inscription : Avril 2015
    Messages : 4
    Par défaut DatePicker - Changer le "Watermark" Sélectionner une date
    Bonjour,

    Je veux utiliser un DatePicker dans mon application, je n'arrive pas à remplacer le "watermark" "Sélectionner une date".

    Je veux remplacer "Sélectionner une date" par "jj/mm/aaaa"


    Merci à l'avance!

  2. #2
    Membre éclairé Avatar de koyot3
    Inscrit en
    Avril 2007
    Messages
    693
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 693
    Par défaut
    Hello

    Ce lien http://blogs.msdn.com/b/silverlight_...r-control.aspx
    devrait t'éclairer.

    Bonne journée

  3. #3
    Membre à l'essai
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Avril 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Technicien réseau

    Informations forums :
    Inscription : Avril 2015
    Messages : 4
    Par défaut
    J'ai déjà parcouru plusieurs pages web à ce sujet, dont celle que vous m'avez proposée.

    Cependant, lorsque j'ouvre la première fois la page, le "watermark" est modifié et si je l'utilise, le "watermark" original du contrôle réapparaît.

    Je crois que le système valide la date. Lorsque la donnée saisie est en erreur ou vide le système affiche le "watermark" d'origine.

  4. #4
    Membre éclairé Avatar de koyot3
    Inscrit en
    Avril 2007
    Messages
    693
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 693
    Par défaut
    Essaie de créer ta propre surcharge pour permettre de modifier le contenu.
    Un exemple (comme on en trouve sur internet)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    public static class DatePickerWatermarkBehaviour
    {
    	public static readonly DependencyProperty WatermarkProperty =
    		DependencyProperty.RegisterAttached(
    			"Watermark",
    			typeof(string),
    			typeof(DatePickerWatermarkBehaviour),
    			new UIPropertyMetadata(null, OnWatermarkChanged));
     
    	public static string GetWatermark(Control control)
    	{
    		return (string)control.GetValue(WatermarkProperty);
    	}
     
    	public static void SetWatermark(Control control, string value)
    	{
    		control.SetValue(WatermarkProperty, value);
    	}
     
    	private static void OnWatermarkChanged(DependencyObject dependencyObject, DependencyPropertyChangedEventArgs e)
    	{
    		var datePicker = dependencyObject as DatePicker;
    		if (datePicker == null)
    			return;
     
    		if ((e.NewValue != null) && (e.OldValue == null))
    			datePicker.Loaded += DatePickerLoaded;	
    	}
     
    	private static void DatePickerLoaded(object sender, RoutedEventArgs e)
    	{
    		var datePicker = sender as DatePicker;
    		if (datePicker == null)
    			return;
     
    		var datePickerTextBox = GetFirstChildOfType<DatePickerTextBox>(datePicker);
     
    		if (datePickerTextBox == null)
    			return;
     
    		var partWatermark = datePickerTextBox.Template.FindName("PART_Watermark", datePickerTextBox) as ContentControl;
    		if (partWatermark == null)
    			return;
     
    		partWatermark.Content = GetWatermark(datePicker);
    	}
     
    	private static T GetFirstChildOfType<T>(DependencyObject dependencyObject) where T : DependencyObject
    	{
    		if (dependencyObject == null)
    			return null;
     
    		for (var i = 0; i < VisualTreeHelper.GetChildrenCount(dependencyObject); i++)
    		{
    			var child = VisualTreeHelper.GetChild(dependencyObject, i);
    			var result = (child as T) ?? GetFirstChildOfType<T>(child);
    			if (result != null)
    				return result;
    		}
     
    		return null;
    	}
    }
    Bonne journée

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo