This article has been localized into Portuguese by the community.
O controle PasswordBox
Para editar texto normal no WPF, temos o TextBox, mas e a edição de senhas? A funcionalidade é praticamente a mesma, mas queremos que o WPF exiba algo diferente dos caracteres reais ao digitar uma senha, para protegê-la das pessoas intrometidas que estiverem olhando por cima do seu ombro. Para esse propósito, o WPF tem o controle PasswordBox, que é tão fácil de usar quanto o TextBox. Permita-me ilustrar com um exemplo:
<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>
Na imagem, digitei exatamente o mesmo texto nas duas caixas de texto, mas na versão de senha os caracteres foram substituídos por pontos. Você pode realmente controlar qual caractere é usado em vez dos caracteres reais, usando a propriedade PasswordChar:
<PasswordBox PasswordChar="X" />
Neste caso, o caractere X será usado no lugar dos pontos. Caso você precise controlar o tamanho da senha, há uma propriedade MaxLength para você:
<PasswordBox MaxLength="6" />
Eu usei ambas as propriedades neste exemplo atualizado:
<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>
Veja como os caracteres agora são X, e que eu só tinha permissão para inserir 6 caracteres na caixa.
PasswordBox e binding
Quando você precisar pegar a senha do PasswordBox, poderá usar a propriedade Password do Code-behind. No entanto, por motivos de segurança, a propriedade Password não é implementada como uma propriedade de dependência, o que significa que você não pode se vincular a ela.
Isso pode ou não ser importante para você - como já foi dito, você ainda pode ler a senha do Code-behind, mas para implementações MVVM ou se você simplesmente adora data binding, uma solução alternativa foi desenvolvida. Você pode ler muito mais sobre isso aqui: http://blog.functionalfun.net/2008/06/wpf-passwordbox-and-data-binding.html