2010-04-12 5 views
11

J'ai une application Silverlight dans laquelle j'attrape certaines touches, telles que Tab ou Ctrl pour effectuer une action. Cependant, je veux être capable de gérer plusieurs touches pressées en même temps comme Ctrl + R ou quelque chose comme ça. Y a-t-il un moyen de le faire dans Silverlight, et si oui, comment?Silverlight gérer plusieurs combinaisons de touches de presse

Répondre

15

Jetez un oeil à ModifierKeys Enumeration pour vérifier plusieurs combinaisons de touches. Voir Silverlight Keyboard Support pour des exemples de code et plus d'informations.

void Canvas_KeyUp(object sender, KeyEventArgs e) 
{ 
    //check for the specific 'v' key, then check modifiers 
    if (e.Key==Key.V) { 
     if ((Keyboard.Modifiers & ModifierKeys.Control) == ModifierKeys.Control) { 
     //specific Ctrl+V action here 
     } 
    } // else ignore the keystroke 
} 
1

Manipulation des combinaisons de touches comme Ctrl + X est très problématique avec Silverlight que votre course dans un navigateur qui, probablement, utiliser la plupart des combinaisons Cntrl lui-même. Ensuite, étant donné que vous avez probablement besoin de prendre en charge plusieurs navigateurs tels que IE, Firefox, etc, je vous recommande d'abandonner. Par conséquent, je limite les combinaisons de touches Silverlight à un décalage uniquement.