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 :

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