TOC

This article has been localized into Polish by the community.

Podstawowe kontrolki:

Kontrolka PasswordBox

Do edycji zwykłego tekstu mamy kontrolkę TextBox w WPF, co jednak z edycją haseł? Funkcjonalność w końcu jest praktycznie taka sama, jednak chcielibyśmy aby WPF zamaskowało jakoś znaki które piszemy, tak aby były one chronione przed wścibskimi ludźmi. Do tego zadania WPF posiada kontrolkę PasswordBox, która jest tak samo prosta do użycia jak zwykłe pole tekstowe. Pozwól mi przedstawić ją za pomocą przykładu:

<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 zrzucie ekranu wprowadziłem dokładnie ten sam tekst do obydwóch pól tekstowych, a mimo to hasło zostało zamaskowane za pomocą kropek. Możesz zmienić znak, który będzie użyty zamiast wpisanych liter za pomocą właściwości PasswordChar:

<PasswordBox PasswordChar="X" />

W tym przypadku zamiast kropek zostanie użyty znak „X". Jeśli potrzebujesz określić długość hasła, wtedy należy użyć właściwości MaxLength:

<PasswordBox MaxLength="6" />

Poniżej zaktualizowałem przykład obydwoma właściwościami:

<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>

Zauważ, że od teraz zamiast hasła widzimy znaki „X" oraz, że w polu można wprowadzić maksymalnie 6 znaków.

PasswordBox i wiązanie danych (binding)

Kiedy potrzebujesz uzyskać hasło z PassworrBox musisz skorzystać z właściwości Password w kodzie za-widokiem. Z powodów bezpieczeństwa właściwość ta nie jest zależna (dependency property), co oznacza że nie można jej wiązać (binding).

Może, lecz nie musi, być to dla Ciebie istotne. Jak już wiesz można odczytać hasło z kodu za-widokiem, jednak stworzono rozwiązanie dla implementacji MVVM, bądź tych co kochają wiązać dane, i więcej o nim możesz przeczytać tutaj: 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!