2011-02-01 29 views
4

%のような特殊記号を制限するテキストボックスを開発したいと思います。テキストボックスのkeydownイベントを使用して '%'を制限しました。私はすでに私はMVVMアーキテクチャでこれを実装するときに私は、文字列形式にsystemkeyを変換するとき、私は別として、一つのキーとD5としてのみシフトを認識し、依存関係プロパティとの問題を抱えてwpfのテキストボックスで%のような特殊記号を制限する方法は?

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

ようなコードを使用していました。

%記号はどのように認識できますか?

答えて

4

あなたの代わりにKeyDownEventのPreviewTextInputイベントに耳を傾けることができます。

myTextBox.PreviewTextInput += PreviewTextInputHandler; 

、その後:

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

これは私が私のアプリで使用するものな機能である、あなたはそれを微調整する必要があります右のcaractersをテストするビットが、これはあなたが行う方法を知っている。

if (e.Text == '%') ...; 
:%のcaracterを取得するためとして

、よくあなただけのようなものを記述する必要があります

関連する問題