Salve a tutti, dopo una lunga assenza scrivo questo piccolo post :)
Molte volte si ha bisogno di gestire i famosi quanto indispensabili shortcut da tastiera, vediamo come fare utilizzando C# e WPF :
Creiamo in una classe una variabile statica di tipo RoutedCommand :
public static RoutedCommand MioCommand = new RoutedCommand();
Inoltre, sulla variabile MioCommand bisogna necessariamente aggiungere una KeyGesture :
MioCommand.InputGestures.Add( new KeyGesture( Key.P , ModifierKeys.Control )); //Lo shortcut è CTRL+P
Successivamente nello xaml della nostra/o window/usercontrol andiamo ad aggiungere un oggetto di tipo CommandBinding all'interno della proprietà CommandBindings e ne impostiamo la proprietà command assegnando ad essa la variabile statica di tipo RoutedCommand :
<Window.CommandBindings>
<CommandBinding Command="{x:Static local:MiaClasse.MioCommand }" Executed="MioCommandExecuted"/>
</Window.CommandBindings>
Possiamo notare la presenza dell'evento "Executed" , tramite l'editor xaml generate l'event handler e all'interno di tale metodo eseguite le operazioni da effettuare alla pressione dello shortcut :
private void MioCommandExecuted( object sender, ExecutedRoutedEventArgs e )
{
//Operazioni varie
}
Per approfondire di piu l'argomento vi consiglio di dare una bella lettura ai seguenti articoli :
http://msdn.microsoft.com/it-it/library/system.windows.uielement.commandbindings.aspx
http://msdn.microsoft.com/it-it/library/system.windows.input.commandbinding.aspx
http://msdn.microsoft.com/it-it/library/system.windows.input.routedcommand.aspx
http://msdn.microsoft.com/it-it/library/system.windows.input.keygesture.aspx
Stay tuned ;)