Home / Programmazione / C# - Asp.NET / Impostare scorciatoie da tastiera in WPF
Mattepuffo

Impostare scorciatoie da tastiera in WPF

Impostare scorciatoie da tastiera in WPF

Abituato a Java e ai Windows Form, ci ho messo un pò a capire come impostare scorciatore da tastiera in una applicazione WPF.

In verità la cosa è più semplice di quello che si pensa.

Oggi vediamo due esempi.

Nel primo chiudiamo l'applicazione con il Ctrl+Q; nel secondo chiudiamo la finestra con il solo tasto ESC.

Vediamo il primo esempio:

        public MainWindow()
        {
            InitializeComponent();
            AddKeys();
        }

        private void AddKeys()
        {
            RoutedCommand exitCmd = new RoutedCommand();
            exitCmd.InputGestures.Add(new KeyGesture(Key.Q, ModifierKeys.Control));
            CommandBindings.Add(new CommandBinding(exitCmd, ExitHandler));
        }

        private void ExitHandler(object sender, ExecutedRoutedEventArgs e)
        {
            this.Close();
        }

Nel costruttore richiamiamo il metodo AddKeys che si occupa di registrare le varie combinazioni.

RoutedCommand è un oggetto che definisce un comando; alla riga sotto impostiamo la combinazione indicando due parametri.

Sotto ancora facciamo il binding con CommandBindings.

Vediamo l'altro esempio, che differisce solo nei parametri passati a KeyGesture:

        public MainWindow()
        {
            InitializeComponent();
            AddKeys();
        }

        private void AddKeys()
        {
            RoutedCommand exitCmd = new RoutedCommand();
            exitCmd.InputGestures.Add(new KeyGesture(Key.Escape));
            CommandBindings.Add(new CommandBinding(exitCmd, ExitHandler));
        }

        private void ExitHandler(object sender, ExecutedRoutedEventArgs e)
        {
            this.Close();
        }

Usando un solo tasto, ESC, passiamo un solo parametro.

Per il resto il codice è uguale!

Enjoy!