可能性のある複製:
「エスケープキーを押して閉じる」動作をプロジェクト内のすべてのWPFウィンドウに割り当てるにはどうすればよいですか?
ユーザーがエスケープボタンをクリックしたときに、wpfプロジェクトのウィンドウを閉じます。すべてのウィンドウにコードを書きたくはありませんが、ユーザーがエスケープキーを押したときにキャッチできるクラスを作成したいと思います。
オプション1
Button.IsCancel プロパティを使用します。
<Button Name="btnCancel" IsCancel="true" Click="OnClickCancel">Cancel</Button>
ボタンのIsCancelプロパティをtrueに設定すると、AccessKeyManagerに登録されるボタンが作成されます。ユーザーがESCキーを押すと、ボタンがアクティブになります。
ただし、これはダイアログに対してのみ適切に機能します。
Option2
Escを押してウィンドウを閉じる場合は、ウィンドウのPreviewKeyDownにハンドラーを追加します。
public MainWindow()
{
InitializeComponent();
this.PreviewKeyDown += new KeyEventHandler(HandleEsc);
}
private void HandleEsc(object sender, KeyEventArgs e)
{
if (e.Key == Key.Escape)
Close();
}