This article has been localized into Czech by the community.
Ovládací prvek PasswordBox
Pro úpravu klasického textu ve WPF máme TextBox, ale co pro zadávání hesel? Funkcionalita je víceméně stejné, ale chceme, aby WPF nezobrazovalo při psaní jednotlivé znaky hesla a umožnilo tak zjistit heslo pouhým pohledem přes rameno. Pro tyto případy má WPF ovládací prvek PasswordBox, který se používá stejně jednoduše jako TextBox. Ukažme si to na příkladu:
<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 obrázku vidíme, že jsme zadali ten stejný text do dvou textových polí. V případě hesla jsou ale znaky nahrazeny tečkami. Můžete dokonce nastavit, jaké zástupné znaky se mají použít, pomoc vlastnosti PasswordChar:
<PasswordBox PasswordChar="X" />
V tomto případě budou tečky nahrazeny znakem X. Pokud chceme nastavit i maximální délku hesla, použijeme vlastnost MaxLength:
<PasswordBox MaxLength="6" />
V následujícím příkladu jsou použity obě vlastnosti:
<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>
Všimněte si, že místo skutečných znaků je použit znak X a maximální délka zadávaného hesla je 6 znaků.
PasswordBox a binding
Pokud potřebujeme z PasswordBox heslo získat, můžeme v kódu použít vlastnost Password. Z bezpečnostních důvodů ale není implementována možnost bindovat tuto hodnotu.
Toto může a nemusí být důležité - jak jsme si již řekli, stále je možné k heslu přistupovat z kódu. Pokud ale ale chcete MVVM implementaci nebo máte rádi data binding, je zde možnost. O té se více dočtete zde: http://blog.functionalfun.net/2008/06/wpf-passwordbox-and-data-binding.html