This article has been localized into German by the community.
Zugriffstasten
Das Konzept der Zugriffstasten, manchmal auch als Hotkeys oder Keyboard Accelerators bezeichnet, ermöglicht es Ihnen, ein bestimmtes Control innerhalb eines Fensters anzusteuern, indem Sie die Alt-Taste gedrückt halten und dann eine andere Taste auf der Tastatur drücken. Dies verbessert die Benutzerfreundlichkeit Ihrer Fenster, da es dem Benutzer ermöglicht, mit seiner Tastatur durch das Fenster zu navigieren, anstatt mit der Maus zu arbeiten.
Festlegen von Zugriffstasten
Die Definition von Zugriffstasten für Ihr WPF-Control ist sehr einfach, aber die Methode könnte Sie ein wenig überraschen. Normalerweise gäbe es dafür eine Eigenschaft, aber nicht für Zugriffstasten. Stattdessen definieren Sie die Zugriffstaste, indem Sie dem Buchstaben einen Unterstrich in der Text/Content-Eigenschaft des Controls voranstellen. Zum Beispiel so:
<Button Content="_New"></Button>
Beachten Sie den Unterstrich (_) vor dem Zeichen "N" - dadurch wird die Taste N zur Zugriffstaste für dieses Tastenfeld. Standardmäßig ändert sich das Aussehen Ihrer Kontrolle(n) nicht, wie Sie an diesem Beispiel sehen können, wo ich Zugriffsschlüssel für alle Tasten definiert habe:
Sobald Sie jedoch die Alt-Taste auf Ihrer Tastatur drücken, werden die verfügbaren Zugriffstasten durch Unterstreichen hervorgehoben:
Während Sie die Alt-Taste gedrückt halten, können Sie nun eine der Zugriffstasten (z.B. N, O oder S) drücken, um den entsprechenden Button zu aktivieren. Er reagiert so, als ob er mit der Maus angeklickt worden wäre.
Zugriffsschlüssel sind für einzelne Elemente in einem Dialogfenster in Ordnung, aber sie sind noch nützlicher in den traditionellen Windows-Menüs, in denen Sie sich normalerweise durch eine Hierarchie von Menüelementen klicken müssen, bevor Sie das gewünschte erreichen. Hier ist ein Beispiel aus Visual Studio:
Wenn ich ein neues Projekt starten möchte, müsste ich mit mehreren Mausbewegungen und Klicks durch das Menü navigieren. So aber kann ich die Alt-Taste gedrückt halten und dann F (für File), dann N (für New) und dann P (für Project) drücken. Sicher, dies hätte auch mit der normalen Tastenkombination (Strg+Shift+N) geschehen können, aber diese Tastenkombination ist erst auf der letzten Ebene der Menühierarchie sichtbar. Und wenn Sie sich das (Strg+Shift+N) nicht schon im Voraus gemerkt haben, dann sind die Zugriffstasten besser, denn man sieht sie, sobald man die Alt-Taste drückt.
Welche Tasten sollten als Zugriffstasten verwendet werden?
Sie könnten versucht sein, einfach eines der Zeichen zu verwenden, die im Text des Controls enthalten sind, aber es gibt tatsächlich Richtlinien für die Auswahl des richtigen Zeichens. Die wichtigste Regel ist natürlich, ein Zeichen auszuwählen, das noch nicht von einem anderen Control verwendet wird, aber zusätzlich sollten Sie die folgenden Regeln beachten:
- Benutzen Sie das erste Zeichen des ersten Wortes
- Wenn das nicht geht, benutzen Sie das erste Zeichen des zweiten oder dritten Worts (z.B. das A in Save As
- Wenn das nicht geht, nehmen Sie das zweite Zeichen des ersten Wortes (z.B. das P in Open
- Wenn das nicht geht, benutzen Sie das zweite Zeichen des zweiten oder dritten Wortes (z.B. das l in Save All
- Allgemein sollte man schmale Zeichen wie i oder l vermeiden, und besser breite Zeichen nehmen, wie m, s, w usw.
Zwei Controls miteinander verbinden
In den bisher gesehenen Beispielen konnten wir die Zugriffstaste direkt beim dem Control definieren, das wir erreichen wollen. Aber es gibt mindestens ein Beispiel, wo dies nicht direkt möglich ist: Wenn Sie ein Eingabe-Control, z.B. eine TextBox, haben, existiert der Text, der seinen Zweck angibt, nicht in dem eigentlichen TextBox-Control. Stattdessen wird man normalerweise ein zweites Steuerelement verwenden, um mit Text den Zweck des TextBox-Steuerelements anzugeben. Dies ist in der Regel ein Label-Control.
In diesem Beispiel würde also das Label-Control dann den beschreibenden Text und damit auch die Zugriffstaste enthalten, aber das Control, das angesteuert werden soll, wäre das TextBox-Control. Kein Problem - wir können die Target Eigenschaft des Labels verwenden, um sie mit der TextBox (oder einem anderen Control) zu verknüpfen, so wie hier:
<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>
Beachten Sie, wie die Zugriffstaste für die Label-Controls angegeben und dann über die Target-Eigenschaft mit dem entsprechenden TextBox-Control verknüpft wird, wo wir ein ElementName-Binding verwenden, um die eigentliche Arbeit zu erledigen. Jetzt können wir auf die beiden TextBox-Steuerelemente mit Alt+F und Alt+L und auf den Button mit Alt+S zugreifen. Sie sieht es dann aus:
Zusammenfassung
Durch die Verwendung von Zugriffstasten in Ihren Windows-Dialogen erleichtern Sie es den Benutzern erheblich, nur mit der Tastatur zu navigieren. Dies ist besonders beliebt bei Power-Usern, die die Tastatur so oft wie möglich anstelle der Maus benutzen. Sie sollten immer Zugriffstasten verwenden, insbesondere für Ihre Menüs.