TOC

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

Control concepten:

Access Keys

Het concept van Access Keys, waarnaar soms ook gerefereerd wordt als Accelerator Keys of Keyboard Accelerators, laten u toe om een specifieke control binnen een window te bereiken door de Alt key in te drukken samen met een andere toets. Dit vergroot de gebruiksmogelijkheden van uw windows, omdat het de gebruiker toestaat om met het klavier door de window te navigeren, in plaats van de muis te moeten gebruiken.

Access Keys definiëren

Access keys voor uw WPF control definiëren is uiterst gemakkelijk, maar de method kan misschien een beetje verrassend lijken. Normaal zou hiervoor een property moeten bestaan, maar niet voor Access keys. In plaats daarvan beschrijft u de Access key door de letter te laten voorafgaan van een underscore in de Text/Content property van de control. Bijvoorbeeld, zoals:

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

Zie de underscore (_) juist vóór de letter N - dit zal de letter N aanduiden als Access key voor deze Button control. Standaard wijzigt het uiterlijk van uw control(s) niet, zoals u kunt zien in het voorbeeld waarin ik Access keys beschreven heb voor alle knoppen:

Echter, zodra je de Alt toets op uw klavier indrukt, lichten de beschikbare Access keys op door een onderstreping:

Terwijl u de Alt toets ingedrukt houdt, kunt u gelijktijdig een van de Access keys (e.g. N, O or S) indrukken om de corresponderende knop te activeren. Het zal reageren zoals een muisklik.

Access Keys zijn leuk foor enkelvoudige elementen in een dialoog/window, maar ze zijn nog nuttiger in traditionele Windows Menus, waar u zich gewoonlijk een weg moet klikken doorheen een hiërarchie van menu items vooraleer u het gewenste item bereikt. Hier volgt een Visual Studio voorbeeld:

In dit geval, in plaats van door het menu te moeten navigeren met meerdere muisbewegingen en kliks kan ik, wanneer ik een nieuw Project wil opstarten, de Alt toets ingedrukt houden, dan F (for File) indrukken, dan N (for New) en dan P (for Project). Dit kon zeker ook wel gedaan worden met de gewone toetsenbord shortcut (Ctrl+Shift+N), maar deze shortcut is niet zichtbaar zolang je niet het laatste niveau van de menu hiërarchie bereikt hebt. Dus, tenzij je het reeds in uw geheugen hebt opgeslagen, is het waarschijnlijk eenvoudiger om de Access keys te gebruiken, vooral omdat deze oplichten van zodra je de Alt toets indrukt.

Welke karakters kunnen als Access keys gebruikt worden?

Misschien voelt u de verleiding om enkel karakters uit de control text/inhoud te gebruiken, maar er zijn wel degelijk richtlijnen voor het uitkiezen van de juiste karakters. De belangrijkste regel is natuurlijk om geen karakter te kiezen die al voor een andere control gebruikt wordt, maar daar bovenop dient u ook de volgende richtlijnen te volgen:

  • Gebruik het eerste karakter van het eerste woord
  • Als dat niet mogelijk is, gebruik dan het eerste karakter van het tweede of derde woord (e.g. de A in Save As)
  • Als dat niet mogelijk is, gebruik dan het tweede karakter van het eerste woord (e.g. P in Open)
  • Als dat niet mogelijk is, gebruik dan het tweede karakter van het tweede of derde woord (e.g. de l in Save All)
  • Algemeen is het wenselijk om kleine karakters te gebruiken zoals i en l, en zoekt u naar duidelijker karakters zoals m, s, w enz.

Twee controls samenbundelen

In de voorbeelden die we tot nu toe gezien hebben, konden we de Access key direct op de gewenste control definiëren. Maar er is minstens één voorbeeld waar dit niet onmiddellijk mogelijk is. Wanneer je een input control hebt, e.g. een TextBox, waarvan de tekst die zijn doel aanduidt niet bestaat in de huidige TextBox control. In plaats daarvan zul je meestal een tweede control gebruiken om, met tekst, het doel van de TextBox aan te duiden. Dit zal meestal een Label control zijn.

Dus, in dit voorbeeld zou de Label control dan de beschrijvende tekst bevatten, en daarom dus ook de Access key, maar de control op dewelke je de aandacht wil vestigen, is de TextBox control. Geen nood, we kunnen de Target property van de Label gebruiken om deze samen te bundelen met de TextBox (of eender welke andere control) als volgt:

<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>

Merk op hoe de Access key beschreven is voor de Label controls en dan gekoppeld aan de relevante TextBox control gebruikmakend van de Target property, waar we een ElementName based Binding gebruiken om het eigenlijke werk te doen. we kunnen nu de twee TextBox controls bereiken met Alt + F en Alt + L, en de Button met Alt + S. Dit ziet er zo uit:

Samenvatting

Door Access keys te gebruiken, maakt u het voor de mensen een stuk makkelijker om te navigeren met enkel hun klavier. Dit is bijzonder populair bij power-gebruikers, die zoveel mogelijk het klavier prefereren boven de muis. Maak dus zoveel mogelijk gebruik van Access keys, zeker voor menu's.

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!