Подтвердить что ты не робот

Как закрыть окно в WPF на escape-ключ

Возможный дубликат:
Как я могу назначить поведение "Закрыть по Escape-key press" во все окна WPF в проекте?

Я хочу закрыть окна в моем проекте wpf, когда пользователь нажимает кнопку escape. Я не хочу писать код в каждом окне, но хочу создать класс, который может поймать, когда пользователь нажимает клавишу эвакуации.

4b9b3361

Ответ 1

Вариант 1

Используйте свойство Button.IsCancel.

<Button Name="btnCancel" IsCancel="true" Click="OnClickCancel">Cancel</Button>

Когда вы установите для свойства IsCancel кнопки значение true, вы создаете Кнопка, зарегистрированная в AccessKeyManager. Кнопка затем активируется, когда пользователь нажимает клавишу ESC.

Однако это работает правильно только для Dialogs.

Вариант2

Вы добавляете обработчик в PreviewKeyDown в окне, если вы хотите закрыть окна при нажатии Esc.

public MainWindow()
{
    InitializeComponent();

    this.PreviewKeyDown += new KeyEventHandler(HandleEsc);
}

private void HandleEsc(object sender, KeyEventArgs e)
{
    if (e.Key == Key.Escape)
        Close();
}