Как ограничить специальные символы, такие как% в текстовом поле в wpf? - PullRequest
4 голосов
/ 01 февраля 2011

Я хотел бы разработать текстовое поле, которое ограничивает специальные символы, такие как%.Я использовал событие keydown текстового поля для ограничения «%».Я уже использовал код как

if(Keyboard.Modifiers == ModifierKeys.Shift && e.key == key.D5)    
{    
    e.handle=true;    
    return;    
}

, когда я реализовал это в архитектуре mvvm, у меня возникла проблема со свойством зависимости, которое распознает только сдвиг как один ключ и D5 как другой, когда я преобразовал системный ключ в формат строки.1004 *

Как узнать символ%?

1 Ответ

4 голосов
/ 01 февраля 2011

вы можете прослушать событие PreviewTextInput вместо KeyDownEvent:

myTextBox.PreviewTextInput += PreviewTextInputHandler;

, а затем:

private void PreviewTextInputHandler(Object sender, System.Windows.Input.TextCompositionEventArgs e)
{
    e.Handled = !AreAllValidChars(e.Text);
}

это одна из таких функций, которую я использую в своем приложении, вы могли бы иметьнемного подправить его для проверки правильных символов, но вы знаете, как это сделать.

что касается получения символа%, то вам просто нужно написать что-то вроде:

if (e.Text == '%') ...;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...