How can I assign the 'Close on Escape-key press' behavior to all WPF windows within a project?

后端 未结 7 2198
长发绾君心
长发绾君心 2020-12-25 13:21

Is there any straightforward way of telling the whole WPF application to react to Escape key presses by attempting to close the currently focused widow? It is not a great bo

7条回答
  •  我在风中等你
    2020-12-25 13:50

    create RoutedUICommand like below

     private static RoutedUICommand EscUICommand = new RoutedUICommand("EscBtnCommand"
           , "EscBtnCommand"
           , typeof(WindowName)
           , new InputGestureCollection(new InputGesture[] 
               { new KeyGesture(Key.Escape, ModifierKeys.None, "Close") }));
    

    and add it command binding in constructor

    CommandBindings.Add(new CommandBinding(EscUICommand, (sender, e) => { this.Hide(); }));
    

提交回复
热议问题