Как отключить копирование вставки в поле пароля в Silverlight

#silverlight #silverlight-4.0

#silverlight #silverlight-4.0

Вопрос:

Есть ли способ запретить пользователю вставлять данные в поле пароля. Требование заключается в том, что пользователь не должен копировать пароль из поля пароля в поле подтверждения пароля. События нажатия клавиши вниз, похоже, мне не помогают, поскольку они срабатывают только при нажатии клавиши ctrl и не срабатывают при ctrl V.

Ответ №1:

Одним из решений может быть расширение элемента управления текстовым полем для имитации поля пароля и переопределения событий ввода / выключения клавиш, чтобы предотвратить копирование / вставку. Похоже, что кто-то уже написал это для поддержки восточноазиатских символов:

Разрешение ввода восточноазиатских символов в поле пароля

Вы должны иметь возможность изменять обработчик OnKeyDown, чтобы также отключить вставку:

 protected override void OnKeyDown(KeyEventArgs e)
{
    if (e.Key == Key.Ctrl)
        CtrlKeyDown = true;

    if (CtrlKeyDown amp;amp; (e.Key == Key.C || e.Key == Key.X || e.Key == Key.Z || e.Key == Key.Y || e.Key == Key.V))
        e.Handled = true;
    else
        base.OnKeyDown(e);
}
  

Комментарии:

1. Я думаю, это похоже на единственное доступное решение на данный момент.