TOC

This article is currently in the process of being translated into Czech (~91% done).

Základní ovládací prvky ("Controls"):

The PasswordBox control

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

This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!