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!
c# wpf routedcommand commandbindings keygesture commandbinding
Commentami!