私はWPFアプリケーションでC#.netを使って作業しています。 無効にする方法はありますか?Backspace特定のxamlページのボタンです。 この特定のxamlページでBackspaceボタンを使用しないようにしたい。ユーザーがのBackspaceボタンを押しても、効果はありません。wpfのバックスペースを無効にする
おかげ
私はWPFアプリケーションでC#.netを使って作業しています。 無効にする方法はありますか?Backspace特定のxamlページのボタンです。 この特定のxamlページでBackspaceボタンを使用しないようにしたい。ユーザーがのBackspaceボタンを押しても、効果はありません。wpfのバックスペースを無効にする
おかげ
あなたがバックスペースをtrueに扱わOnKeyDownイベントとセットをキャッチする必要があります。
private void Window_KeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Back)
{
e.Handled = true;
}
}
私はしませんでしたので、だから私はapproach by sipwizを優先すべてのキーボードショートカットを無効にしたい(私はまだALT-Leftなどをバックスペースなしで使用したい)。
私がWPF NavigationWindowを使用している場合は、OnKeyDown
メソッドをオーバーライドしても機能しませんでしたが、Backspaceキーを押したときにウィンドウが移動しました。 OnPreviewKeyDown
を無効にすることはやり始めましたが、テキストボックスを扱うためにBackspaceキーが必要になったときに問題に遭遇しました。
だから、私はapproach by Ed Andersenから学んだものを取って、私は私のNavigationWindowコンストラクタに次のコードを追加しました:
KeyGesture backKeyGesture = null;
foreach(var gesture in NavigationCommands.BrowseBack.InputGestures)
{
KeyGesture keyGesture = gesture as KeyGesture;
if((keyGesture != null) &&
(keyGesture.Key == Key.Back) &&
(keyGesture.Modifiers == ModifierKeys.None))
{
backKeyGesture = keyGesture;
}
}
if (backKeyGesture != null)
{
NavigationCommands.BrowseBack.InputGestures.Remove(backKeyGesture);
}
彼はナビゲーションを意味している場合、あなたはおそらくに持っているように、その後の状況は、少し複雑かもしれませんAlt + Leftといくつかのマウスボタンも処理します。 – Joey
これはPreviewKeyDownイベントを実際に処理する必要があります。そうでなければ、TextBoxのような別のコントロールにフォーカスがあると、キーが傍受されません。なぜ彼はバックスペースキーを無効にしたいのか言っていないので、おそらく彼はエントリーコントロールでそれをサポートしたいと考えています。 –
Hee Abe、それはPreviewKeyDownイベントを処理しました。 ありがとうございました。 –