VisualElement-Zugriffsschlüssel unter Windows

Beispiel herunterladen Das Beispiel herunterladen

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 VisualElementanzugeben. 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 doubleund die VisualElement.AccessKeyVerticalOffset angefügte Eigenschaft auf einen doublefestlegen:

<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 des VisualElementangezeigt wird.
  • Bottom – gibt an, dass die Zugriffstastenspitze unter dem unteren Rand des VisualElementangezeigt wird.
  • Right – gibt an, dass die Zugriffstastenspitze rechts vom rechten Rand des VisualElementangezeigt wird.
  • Left – gibt an, dass die Zugriffstastenspitze links vom linken Rand des VisualElementangezeigt wird.
  • Center – gibt an, dass die Zugriffstastentipp in der Mitte von VisualElementü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 Autoist.

Darüber hinaus können die GetAccessKeyMethoden , GetAccessKeyPlacement, GetAccessKeyHorizontalOffsetund 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:

Plattformspezifische VisualElement-Zugriffsschlüssel 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 Switchaktiviert, wird umgeschaltet Switch . Wenn ein Benutzer die Zugriffsschlüssel für ein Entryaktiviert, erhält den Entry Fokus. Wenn ein Benutzer den Zugriffsschlüssel für ein Buttonaktiviert, 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.