Здрастувуйте! Как сделать чтобы при выборе CheckBox пароль скрывался и наоборот, все никак не могу понять.
Ответ
Как вам уже сказали, такой функциональности нет у PasswordBox. Но я предложу решение-костыль, которое как-то реализовал. У нас есть TextBox, PasswordBox, CheckBox и Button.
TextBox - тут будет виден пароль
PasswordBox - тут будет скрыт пароль
CheckBox - переключатель видимости пароля
Button - кнопка для отображения пароля в окне
Главное условие - это расположение TextBox и PasswordBox в одном и том же месте с одними и теми же координатами. Просто установить одинаковые значения. TextBox изначально убдет скрыт. Обработчик клика на CheckBox будет таким:
private void CheckBox_Click(object sender, RoutedEventArgs e)
{
var checkBox = sender as CheckBox;
if (checkBox.IsChecked.Value)
{
pwdTextBox.Text = pwdPasswordBox.Password; // скопируем в TextBox из PasswordBox
pwdTextBox.Visibility = Visibility.Visible; // TextBox - отобразить
pwdPasswordBox.Visibility = Visibility.Hidden; // PasswordBox - скрыть
}
else
{
pwdPasswordBox.Password = pwdTextBox.Text; // скопируем в PasswordBox из TextBox
pwdTextBox.Visibility = Visibility.Hidden; // TextBox - скрыть
pwdPasswordBox.Visibility = Visibility.Visible; // PasswordBox - отобразить
}
}
Ну а по нажатию на кнопку отобразим наш пароль, это для наглядности:
private void Button_Click_1(object sender, RoutedEventArgs e)
{
var passrod = checkBoxPwd.IsChecked.Value ? pwdTextBox.Text : pwdPasswordBox.Password;
MessageBox.Show(passrod);
}
Данный пример польносью рабочий. Да, костыль, но это самое простое решение.
Ссылка на очень похожий ответ с большого SO: showing password characters on some event for passwordbox можно еще Focus добавить, как сделано там.
Комментариев нет:
Отправить комментарий