This article has been localized into Hungarian by the community.
A Password box vezérlő
Egyszerű szöveg szerkesztésére a WPF-ben létezik a TextBox vezérlő, de mi van ha jelszót akarunk bevinni, szerkeszteni? Funkcionálisan szinte azonos a TextBox vezérlővel, de a WPF-től azt várjuk el, hogy más karaktereket jelenítsen meg, nem a beírt karaktereket, amikor jelszót gépelünk be azért hogy megvédjük az információt a kíváncsi tekintetektől. Erre a célra létezik a WPF-ben a PasswordBox vezérlő, amit ugyanolyan könnyű használni mint a TextBox vezérlőt. Engedjék meg, hogy illusztráljam ezt az alábbi példával:
<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>
A képernyő nézeten látható hogy ugyanazt a szöveget vittük be mindkét textbox vezérlőbe, de a jelszó verzióban a valós karakterek pont karakterrel lettek helyettesítve. A felhasználó beállíthatja a megjelenítendő karaktert, ami megjelenik a valós karakterek helyett, mint a PasswordChar tulajdonságot:
<PasswordBox PasswordChar="X" />
Ebben az esetben az X karaktert fogjuk használni a pont karakter helyett. Amennyiben a fejlesztő be akarja állítani a jelszó maximális hosszát, akkor azt a MaxLength tulajdonság beállításával teheti meg:
<PasswordBox MaxLength="6" />
Használtuk mindkét tulajdonságot az alábbi példakódban:
<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>
Megfigyelhetjük, hogy a megjelenített karakter most az X karakter és csak 6 karakter bevitelére volt módunk.
'PasswordBox' és a adat-kötés
Amennyiben ki szeretnéd nyerni a jelszót a 'PasswordBox'-ból, akkor a Password tulajdonságot ki tudod olvasni a c# forráskódból. Mindenesetre, biztonsági megfontolásból a 'Password' tulajdonság nem köthető a vezérlőhöz, vagyis csak kódból tudod elérni.
Ez talán nem is fontos a számunkra - mint ahogy említettük a c# forráskódból minden probléma nélkül ki tudjuk olvasni a jelszót. Az MVVM megoldáshoz vagy ha csak szeretnénk mégis adat-kötéses megoldással élni, erre is van megoldás. Erről a következő cikkben olvashatsz: http://blog.functionalfun.net/2008/06/wpf-passwordbox-and-data-binding.html