août
2008
Sur le forum officiel de Silverlight, j’ai récemment répondu à un post où une personne demandée comment intercepter les combinaisons de touches du type Ctrl+C, Ctrl+V, Shit+xxx ou même Pomme+xxx, d’où cette astuce qui sera je pense utile à plus d’une personne.
Tout d’abord on pourrait penser que tout peut se faire avec l’évènement KeyDown et l’argument KeyEventArgs mais ce n’est pas tout à fait le cas.
En effet la classe KeyEventArgs contient une propriété Key nous donnant la touche pressée mais il n’existe pas d’autre propriété (comme en Silverlight 2 Beta 1) pour savoir si la touche Shift ou Ctrl est pressée.
Pour palier à ça, il faut utiliser la classe Keyboard et sa propriété Modifiers qui nous donne la touche Modifier pressée. Cette propriété est un enum qui peut avoir les valeurs suivantes :
- Alt
- Apple
- Control
- None
- Shift
- Windows
Nous pouvons désormais intercepter des combinaisons de touches de cette manière
void textBox_KeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.C && Keyboard.Modifiers == ModifierKeys.Control)
{
// Do your stuff
}
}