私はWPFアプリケーションを持っています。そのメイン ウィンドウには、PreviewKeyUp ハンドラーがあり、特定のグローバル キーの押下 (この場合は Enter) を処理します。モーダル ダイアログ (ShowDialog) が表示されているときに Enter キーを押すと、Enter キーがメイン ウィンドウの PreviewKeyUp ハンドラーに移動することがわかりました。あなたの見方によっては、これは理にかなっているかもしれませんし、そうでないかもしれません...しかし、それは私がここで望んでいるものではありません.
そのため、モーダル ダイアログで Enter キーが押されたときにも呼び出されることなく、(フォーカスされたコントロールに関係なく) メイン ウィンドウで Enter キーを確実にインターセプトする方法がわかりません。
これは、Enter キーに固有の動作のようです。数字などの他のキーでは発生しません。
誰でもアイデアはありますか?
メインウィンドウのコード:
private void Window_PreviewKeyUp(object sender, KeyEventArgs e)
{
switch (e.Key)
{
case Key.Enter:
Controller.ProductSelected();
ActionComplete();
e.Handled = true;
break;
}
}
public bool PromptForPassword(string promptText, out string result)
{
DataEntryForm entryForm = new DataEntryForm();
entryForm.Owner = this;
entryForm.PromptText = promptText;
IsEnabled = false; // doesn't help
entryForm.ShowDialog();
IsEnabled = true;
result = entryForm.EntryData;
return (bool) entryForm.DialogResult;
}