135 votes

Raccourcis clavier dans

Je connais l'utilisation de _ au lieu de &, ce que je regarde est tous les raccourcis de type Ctrl +.

Ctrl + Z pour annuler, Ctrl + S pour enregistrer, etc.

Existe-t-il un moyen "standard" de les implémenter dans les applications WPF? Ou est-ce un cas de rouler le vôtre et de le câbler à n'importe quel commandement / contrôle?

179voto

Abby Fichtner Points 1316

Je comprends la méthode standard est par la création de Commandes, puis en ajoutant vos touches de raccourci comme InputGestures. Cela permet de les touches de raccourci de travail, même s'ils ne sont pas branchés à tout contrôle. Et puisque les éléments de menu de comprendre clavier gestes, ils vont automatiquement votre clé de raccourci dans le menu éléments de texte, si vous le crochet de la commande jusqu'à votre élément de menu.

A. Créer statique d'attribut de tenir de commande (de préférence en tant que propriété statique dans la classe que vous créez pour les commandes - mais pour simple exemple, en utilisant seulement statique d'attribut dans la fenêtre .cs):

public static RoutedCommand MyCommand = new RoutedCommand( );

B. Ajouter la touche de raccourci(s) qui doit appeler la méthode:

MyCommand.InputGestures.Add( new KeyGesture( Key.S , ModifierKeys.Control ));

C. Créer de commande de liaison qui pointe vers votre méthode à appeler sur exécuter, placez-le dans les liaisons de commande de l'élément de l'INTERFACE utilisateur sous lequel il doit travailler pour (par exemple, la fenêtre) et de la méthode:

<Window.CommandBindings>
    <CommandBinding Command="{x:Static local:MyWindow.MyCommand}" Executed="MyCommandExecuted"/>
</Window.CommandBindings>

private void MyCommandExecuted( object sender, ExecutedRoutedEventArgs e ) { ... }

108voto

oliwa Points 222

J'ai trouvé que c'était exactement ce que je cherchais concernant la liaison de clé dans WPF.

http://joyfulwpf.blogspot.com/2009/05/mvvm-commandreference-and-keybinding.html

3voto

plaasmeisie Points 11

VB.Net:

Public Shared SaveCommand_AltS As New RoutedCommand

À l'intérieur de l'événement chargé:

SaveCommand_AltS.InputGestures.Add (New KeyGesture (Key.S, ModifierKeys.Control))

Me.CommandBindings.Add (New CommandBinding (SaveCommand_AltS, AddressOf Me.save))

Aucun xaml n'est nécessaire. J'espère que cela t'aides. :)

-2voto

Jiří Skála Points 46

Comment associer la commande à un MenuItem :

 <MenuItem Header="My command" Command="{x:Static local:MyWindow.MyCommand}"/>
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X