TOC

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

Основні елементи керування:

The PasswordBox control

Для редагування звичайного тексту в WPF ми маємо TextBox, але як щодо редагування паролів? Функціональність дуже однакова, але ми хочемо, щоб WPF відображав щось інше, ніж фактичні символи при наборі пароля, щоб захистити його від зацікавлених людей, які спостерігають за вами . З цією метою WPF має елемент керування PasswordBox , котрий так само простий у використанні, як і TextBox. Дайте мені проілюструвати на прикладі:

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

На скріншоті я ввів той самий текст у два текстових поля, але у версії пароля символи замінено крапками. Ви можете контролювати, який символ буде використано замість справжніх символів, за допомогою властивості PasswordChar property:

<PasswordBox PasswordChar="X" />

У цьому випадку замість точок буде використано символ X. У випадку, якщо вам потрібно контролювати довжину пароля, для вас є властивість MaxLength :

<PasswordBox MaxLength="6" />

Я використав обидві властивості в цьому оновленому прикладі:

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

Записано як символи є замість X, і що мені дозволено вводити лише 6 символів у вікні.

PasswordBox та прив'язка

Коли мені потрібно отримати пароль від PasswordBox, ви можете використовувати властивістьPasswordз Code-behind. Однак, з міркувань безпеки, властивість Password не реалізується як властивість залежностей, а це означає, що ви не можете прив'язати до неї.

Це може бути важливим для вас, а може і не бути - як вже було сказано, ви все одно можете прочитати пароль з Code-behind, але для MVVM-реалізацій або якщо ви просто ви просто любите прив'язки даних, було розроблено обхідний шлях. Ви можете прочитати про нього набагато більше тут: 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!
Table of Contents