This article has been localized into French by the community.
Le contrôle PasswordBox
Pour éditer un texte en WPF, nous utilisons une TextBox, mais qu'en est-il des mots de passe ? Cette fonctionnalité est plus ou moins la même, mais on cherchera ici à ce que WPF affiche autre chose que les caractères que l'on saisit, pour protéger le mot de passe de personnes trop curieuses. Pour cela, WPF dispose du contrôle PasswordBox qui est aussi facile à utiliser qu'une TextBox. Voilà un exemple d'utilisation de PasswordBox:
<Window x:Class="WpfTutorialSamples.Basic_controls.PasswordBoxSample"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="PasswordBoxSample" Height="160" Width="300">
<StackPanel Margin="10">
<Label>Text:</Label>
<TextBox />
<Label>Password:</Label>
<PasswordBox />
</StackPanel>
</Window>
Dans cet exemple, on a rentré exactement le même texte dans la TextBox et la PasswordBox, mais dans la PasswordBox, les caractères sont remplacés par des points. Vous pouvez en fait contrôler quel caractère est utilisé pour dissimuler votre mot de passe, en utilisant la propriété PasswordChar:
<PasswordBox PasswordChar="X" />
Dans cet exemple, nous utilisons le caractère X à la place des points. Si jamais vous devez contrôler la longueur du mot de passe, vous pouvez utiliser la propriété MaxLength:
<PasswordBox MaxLength="6" />
Voilà un exemple où nous utilisons à la fois ces deux propriétés:
<Window x:Class="WpfTutorialSamples.Basic_controls.PasswordBoxSample"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="PasswordBoxSample" Height="160" Width="300">
<StackPanel Margin="10">
<Label>Text:</Label>
<TextBox />
<Label>Password:</Label>
<PasswordBox MaxLength="6" PasswordChar="X" />
</StackPanel>
</Window>
Vous remarquerez que les caractères sont maintenant des X, et qu'on ne peut entrer que 6 caractères dans la PasswordBox.
PasswordBox et binding
Quand vous aurez besoin de récupérer le mot de passe de la PasswordBox, vous pourrez utiliser la propriété Password en Code-behind. Cependant, pour des raisons de sécurité, cette propriété n'est pas implémentée comme une propriété de dépendance, ce qui signifie que vous ne pouvez pas vous y relier avec un Binding.
Cela peut être important pour vous ou non - comme nous l'avons déjà dit, vous pouvez toujours lire le mot de passe depuis le Code-behind, mais pour une implémentation MVVM ou simplement si vous aimez les Bindings de données, une solution de contournement a été développée. Vous pouvez en apprendre plus à ce propos ici : http://blog.functionalfun.net/2008/06/wpf-passwordbox-and-data-binding.html