TOC

This article is currently in the process of being translated into French (~96% done).

Concepts des contrôles:

Access Keys

Le concept de touches de raccourci , parfois appelées touches d'accélération ou accélérateurs de clavier , permet d'accéder à un contrôle spécifique à l'intérieur d'une fenêtre en maintenant enfoncée la touche Alt, puis en appuyant sur une autre touche du clavier. Cela améliore la convivialité de vos fenêtres, car cela permet à l'utilisateur d'utiliser son clavier pour naviguer dans la fenêtre, au lieu d'avoir à utiliser la souris.

Definir les Touches de raccourci

Définir des touches de raccourci pour votre contrôle WPF est très facile, mais la méthode risque de vous surprendre un peu. Normalement, il y aurait une propriété pour cela, mais pas pour les touches de raccourci. Au lieu de cela, vous définissez la touches de raccourci en préfixant la lettre par un trait de soulignement dans la propriété Text/Content du contrôle. Par exemple, comme ceci:

<Button Content="_New"></Button>

Remarquez le trait de soulignement (_) juste avant le caractère N - cela transformera la touche N en touche de raccourci désignée pour ce contrôle Button. Par défaut, l'apparence de vos contrôles ne change pas, comme le montre cet exemple où j'ai défini des clés d'accès pour tous les boutons:

Toutefois, dès que vous appuyez sur la touche Alt de votre clavier, les touches de raccourci disponibles sont mises en évidence en les soulignant:

Tout en maintenant la touche Alt enfoncée, vous pouvez désormais appuyer sur l'une des touches d'accès (par exemple, N, O ou S) pour activer le bouton correspondant. Il réagira comme s'il avait été cliqué avec la souris.

Les touches de raccourci conviennent aux éléments individuels dans une boîte de dialogue/fenêtre, mais elles sont encore plus utiles dans les menus Windows traditionnels, où vous devrez généralement cliquer dans une hiérarchie d'éléments de menu avant d'atteindre celui dont vous avez besoin. Voici un exemple dans Visual Studio:

Dans ce cas, au lieu de naviguer dans le menu avec plusieurs mouvements de souris et de clics lorsque je veux démarrer un nouveau projet, je peux maintenir la touche Alt enfoncée, puis appuyer sur F (pour File ), puis N (pour New ), puis P (pour Project ). Bien sûr, cela aurait également pu être réalisé avec le raccourci clavier habituel (Ctrl + Maj + N), mais ce raccourci n'est visible que lorsque vous atteignez le dernier niveau de la hiérarchie du menu. Par conséquent, il peut être plus facile de le mémoriser pour utiliser les touches de raccourci, car elles sont mises en évidence dès que vous appuyez sur la touche Alt .

Quel(s) caractère(s) faut-il utiliser comme touche de raccourci?

Vous pourriez être tenté d'utiliser simplement l'un des caractères trouvés dans le texte/le contenu du contrôle, mais il existe en fait des règles pour choisir le bon caractère. La règle la plus importante est bien sûr de choisir un caractère qui n’a pas déjà été utilisé par un autre contrôle, mais en plus de cela, vous devez suivre les instructions suivantes:

  • Utilisez le premier caractère du premier mot .
  • Si cela n’est pas possible, utilisez le premier caractère du deuxième ou du troisième mot (par exemple, le A dans Save As ).
  • Si cela n’est pas possible, utilisez le deuxième caractère du premier mot (par exemple, P dans Open).
  • Si cela n’est pas possible, utilisez le deuxième caractère du deuxième ou du troisième mot (par exemple, le l dans Save All ).
  • En général, évitez les caractères étroits tels que i et l et optez pour les caractères plus larges tels que m , s , w etc.

Relier deux contrôles

Dans les exemples que nous avons vus jusqu'à présent, nous avons pu définir la touche de raccourci directement sur le contrôle que nous souhaitions atteindre. Mais il existe au moins un exemple où cela n’est pas directement possible: lorsque vous avez un contrôle de saisie, par exemple une TextBox , le texte indiquant son objectif n’existe pas dans le contrôle TextBox actuel. Au lieu de cela, vous utiliserez généralement un deuxième contrôle pour indiquer, avec du texte, la fonction du contrôle TextBox. Il s’agit généralement d’un contrôle Label.

Ainsi, dans cet exemple, le contrôle Label contiendrait alors le texte descriptif, et donc également la clé d'accès, mais le contrôle que vous souhaitez attirer serait le contrôle TextBox. Pas de problème - nous pouvons utiliser la propriété Target du Label pour le lier au TextBox (ou à tout autre contrôle), comme ceci:

<StackPanel Margin="20">
    <Label Content="_First name:" Target="{Binding ElementName=txtFirstName}" />
    <TextBox Name="txtFirstName" />
    <Label Content="_Last name:" Target="{Binding ElementName=txtLastName}" />
    <TextBox Name="txtLastName" />
    <Button Content="_Save" Margin="20"></Button>
</StackPanel>

Notez que la touche de raccourci est spécifiée pour les contrôles Label, puis liée au contrôle TextBox correspondant à l'aide de la propriété Target, où nous utilisons un ElementName . Binding pour effectuer le travail courant. Nous pouvons maintenant accéder aux deux contrôles TextBox en utilisant Alt + F et Alt + L, et le Button avec Alt + S. Voici à quoi ça ressemble:

Résumé

En utilisant les touches d'accès dans vos fenêtres/boîtes de dialogue, vous aidez les gens à naviguer plus facilement en utilisant uniquement leur clavier. Ceci est particulièrement populaire parmi les utilisateurs expérimentés, qui utiliseront le clavier au profit de la souris autant que possible. Vous devez toujours utiliser les touches de raccourci, en particulier pour vos menus.

This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!