Bonne façon de créer un menu de raccourcis dans WPF
Qu'est-ce que la bonne/meilleure façon de créer un menu avec la touche de raccourci raccourcis?
Je veux simplement un Fichier au menu de Visual Studio qui est Nouveau, Ouvrir, Enregistrer, Enregistrer Tous les, de Sortie et de quelques autres raccourcis standard.
Il semble que InputGestureText affiche le texte approprié, mais comme il est appelé le "Texte" et ne semble pas déclencher des événements, je vais supposer que n'est pas la bonne façon de le faire. L'architecture de Commandement semble également assez volumineux, donc je ne veux pas la tête en bas de ce chemin si il ya une meilleure façon.
Mise à jour:
Pour plus de clarté, disons que je suis en utilisant le menu suivant:
<Menu>
<MenuItem Header="_File">
<MenuItem Header="_New" />
<MenuItem Header="_Open" />
<Separator />
<MenuItem Header="_Save" />
<MenuItem Header="Save _All" />
<Separator />
<MenuItem Header="_Export"/>
<MenuItem Header="_Import"/>
<Separator />
<MenuItem Header="E_xit"/>
</MenuItem>
</Menu>
à l'Exportation et à l'Importation serait de raccourcis personnalisés; quelque chose que Microsoft n'a pas à s'appuyer sur quelque chose comme ApplicationCommands. Pouvez vous s'il vous plaît fournir une solution complète, y compris C# code personnalisé si nécessaire? (Non seulement il va m'aider, mais j'espère que d'aider quelqu'un d'autre qui est à la recherche pour des problèmes similaires.)
OriginalL'auteur Matt DeKrey | 2010-06-08
Vous devez vous connecter pour publier un commentaire.
Vous avez raison de noter que InputGestureText ne pas créer un raccourci, il suffit d'étiquettes dans le menu. La bonne façon de le faire est d'utiliser le InputBindings de la fenêtre. Vous pouvez associer un raccourci clavier à toute commande, y compris votre propre modèle-commandes définies. Mais pour que cela fonctionne, vous devez utiliser les éléments de menu liée à des commandes - pas gérer leurs événements click directement. C'est la méthode de manipulation des commandes de menu dans WPF. Sinon, vous aurez besoin de recourir à l'ancienne clavier de la gestion des événements.
Plus d'informations sur MSDN.
Le InputBinding donne à l'utilisateur la possibilité d'invoquer la commande via le raccourci clavier. Pour afficher un raccourci dans le menu, il suffit d'ajouter le InputGestureText propriété pour le bon menu:
<MenuItem Header="_New" InputGestureText="Ctl+N"/>
OriginalL'auteur Josh
Prendre un coup d'oeil à la ApplicationCommands classe. Vous obtenez la clé standard gestes (accélérateurs) et texte gratuitement.
Le droit.. Chaque commande est une Exécution + CanExecute combo. L'élément de menu est désactivé si CanExecute prend la valeur false. c'est à dire si rien n'a été copié et pourtant.. PasteCmd.CanExecute serait return false (vieillissement de la sortie de l'élément de menu). Pour les commandes personnalisées - voir msdn.microsoft.com/en-us/library/...
OriginalL'auteur Gishu