Как закрыть окно в WPF на управляющей клавише - PullRequest
38 голосов
/ 07 октября 2011

Возможный дубликат:
Как назначить поведение «Закрыть при нажатии клавиши Escape» для всех окон WPF в проекте?

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

1 Ответ

119 голосов
/ 08 октября 2011

Опция 1

Использование свойства Button.IsCancel .

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

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

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

Option2

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

public MainWindow()
{
    InitializeComponent();

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

private void HandleEsc(object sender, KeyEventArgs e)
{
    if (e.Key == Key.Escape)
        Close();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...