VisualElement-Zugriffsschlüssel unter Windows
Zugriffstasten sind Tastenkombinationen, die die Benutzerfreundlichkeit und Barrierefreiheit von Apps auf der Universelle Windows-Plattform (UWP) verbessern, indem sie benutzern eine intuitive Möglichkeit bieten, schnell über eine Tastatur zu navigieren und mit der sichtbaren Benutzeroberfläche der App zu interagieren, anstatt per Toucheingabe oder Maus. Es handelt sich um Kombinationen der ALT-Taste und einer oder mehreren alphanumerischen Tasten, die in der Regel sequenziell gedrückt werden. Tastenkombinationen werden automatisch für Zugriffstasten unterstützt, die ein einzelnes alphanumerisches Zeichen verwenden.
Zugriffstastentipps sind unverankerte Badges, die neben Steuerelementen angezeigt werden, die Zugriffsschlüssel enthalten. Jede Zugriffstastentipp enthält die alphanumerischen Schlüssel, die das zugeordnete Steuerelement aktivieren. Wenn ein Benutzer die ALT-TASTE drückt, werden die Zugriffstastentipps angezeigt.
Dieser plattformspezifische UWP-Wert wird verwendet, um einen Zugriffsschlüssel für eine VisualElement
anzugeben. Sie wird in XAML verwendet, indem die VisualElement.AccessKey
angefügte Eigenschaft auf einen alphanumerischen Wert festgelegt wird, und optional die VisualElement.AccessKeyPlacement
angefügte Eigenschaft auf einen Wert der AccessKeyPlacement
Enumeration, die VisualElement.AccessKeyHorizontalOffset
angefügte Eigenschaft an einen double
und die VisualElement.AccessKeyVerticalOffset
angefügte Eigenschaft auf einen double
festlegen:
<TabbedPage ...
xmlns:windows="clr-namespace:Xamarin.Forms.PlatformConfiguration.WindowsSpecific;assembly=Xamarin.Forms.Core">
<ContentPage Title="Page 1"
windows:VisualElement.AccessKey="1">
<StackLayout Margin="20">
...
<Switch windows:VisualElement.AccessKey="A" />
<Entry Placeholder="Enter text here"
windows:VisualElement.AccessKey="B" />
...
<Button Text="Access key F, placement top with offsets"
Margin="20"
Clicked="OnButtonClicked"
windows:VisualElement.AccessKey="F"
windows:VisualElement.AccessKeyPlacement="Top"
windows:VisualElement.AccessKeyHorizontalOffset="20"
windows:VisualElement.AccessKeyVerticalOffset="20" />
...
</StackLayout>
</ContentPage>
...
</TabbedPage>
Alternativ kann es über C# mithilfe der Fluent-API verwendet werden:
using Xamarin.Forms.PlatformConfiguration;
using Xamarin.Forms.PlatformConfiguration.WindowsSpecific;
...
var page = new ContentPage { Title = "Page 1" };
page.On<Windows>().SetAccessKey("1");
var switchView = new Switch();
switchView.On<Windows>().SetAccessKey("A");
var entry = new Entry { Placeholder = "Enter text here" };
entry.On<Windows>().SetAccessKey("B");
...
var button4 = new Button { Text = "Access key F, placement top with offsets", Margin = new Thickness(20) };
button4.Clicked += OnButtonClicked;
button4.On<Windows>()
.SetAccessKey("F")
.SetAccessKeyPlacement(AccessKeyPlacement.Top)
.SetAccessKeyHorizontalOffset(20)
.SetAccessKeyVerticalOffset(20);
...
Die VisualElement.On<Windows>
-Methode gibt an, dass diese plattformspezifische nur auf der Universelle Windows-Plattform ausgeführt wird. Die VisualElement.SetAccessKey
-Methode im Xamarin.Forms.PlatformConfiguration.WindowsSpecific
-Namespace wird verwendet, um den Zugriffsschlüsselwert für festzulegen VisualElement
. Die VisualElement.SetAccessKeyPlacement
-Methode gibt optional die Position an, die zum Anzeigen des Zugriffstastentipps verwendet werden soll, wobei die AccessKeyPlacement
Enumeration die folgenden möglichen Werte bereitstellt:
Auto
– gibt an, dass die Platzierung der Zugriffstastentipp vom Betriebssystem bestimmt wird.Top
– gibt an, dass die Zugriffstastenspitze über dem oberen Rand desVisualElement
angezeigt wird.Bottom
– gibt an, dass die Zugriffstastenspitze unter dem unteren Rand desVisualElement
angezeigt wird.Right
– gibt an, dass die Zugriffstastenspitze rechts vom rechten Rand desVisualElement
angezeigt wird.Left
– gibt an, dass die Zugriffstastenspitze links vom linken Rand desVisualElement
angezeigt wird.Center
– gibt an, dass die Zugriffstastentipp in der Mitte vonVisualElement
überlagert angezeigt wird.
Hinweis
In der Regel ist die Platzierung der Auto
Schlüsseltippen ausreichend, was unterstützung für adaptive Benutzeroberflächen umfasst.
Die VisualElement.SetAccessKeyHorizontalOffset
Methoden und VisualElement.SetAccessKeyVerticalOffset
können für eine präzisere Steuerung des Speicherorts der Zugriffstastentipp verwendet werden. Das Argument der SetAccessKeyHorizontalOffset
-Methode gibt an, wie weit die Zugriffstastenspitze nach links oder rechts verschoben werden soll, und das Argument zur SetAccessKeyVerticalOffset
-Methode gibt an, wie weit die Zugriffstastenspitze nach oben oder unten verschoben werden soll.
Hinweis
Zugriffstastentippoffsets können nicht festgelegt werden, wenn die Platzierung der Zugriffstaste festgelegt Auto
ist.
Darüber hinaus können die GetAccessKey
Methoden , GetAccessKeyPlacement
, GetAccessKeyHorizontalOffset
und GetAccessKeyVerticalOffset
verwendet werden, um einen Zugriffsschlüsselwert und seinen Speicherort abzurufen.
Das Ergebnis ist, dass Zugriffstastentipps neben allen VisualElement
Instanzen angezeigt werden können, die Zugriffsschlüssel definieren, indem Sie die ALT-TASTE drücken:
für
Wenn ein Benutzer eine Zugriffstaste durch Drücken der ALT-Taste gefolgt von der Zugriffstaste aktiviert, wird die Standardaktion für ausgeführt VisualElement
. Wenn z. B. ein Benutzer die Zugriffsschlüssel für ein Switch
aktiviert, wird umgeschaltet Switch
. Wenn ein Benutzer die Zugriffsschlüssel für ein Entry
aktiviert, erhält den Entry
Fokus. Wenn ein Benutzer den Zugriffsschlüssel für ein Button
aktiviert, wird der Ereignishandler für das Clicked
Ereignis ausgeführt.
Warnung
Wenn ein modales Dialogfeld angezeigt wird, können standardmäßig alle Zugriffsschlüssel aktiviert werden, die auf der Seite hinter dem Dialogfeld definiert sind. In diesem Szenario kann jedoch benutzerdefinierte Logik geschrieben werden, um Zugriffsschlüssel zu deaktivieren. Dies kann erreicht werden, indem sie das Dispatcher.AcceleratorKeyActivated
Ereignis in der MainPage
-Klasse Ihres UWP-Projekts behandeln und im Ereignishandler die Handled
-Eigenschaft der Ereignisargumente auf true
festlegen, wenn ein modales Dialogfeld angezeigt wird.
Weitere Informationen zu Zugriffsschlüsseln finden Sie unter Zugriffsschlüssel.