Clés d’accès VisualElement sur Windows

Télécharger l’exemple Télécharger l’exemple

Les touches d’accès sont des raccourcis clavier qui améliorent la facilité d’utilisation et l’accessibilité des applications sur le plateforme Windows universelle (UWP) en offrant aux utilisateurs un moyen intuitif de naviguer rapidement et d’interagir avec l’interface utilisateur visible de l’application via un clavier plutôt que par le biais de l’interaction tactile ou d’une souris. Il s’agit de combinaisons de la touche Alt et d’une ou plusieurs touches alphanumériques, généralement enfoncées séquentiellement. Les raccourcis clavier sont automatiquement pris en charge pour les touches d’accès qui utilisent un seul caractère alphanumérique.

Les touches d’accès sont des badges flottants affichés en regard des contrôles qui incluent des clés d’accès. Chaque touche d’accès contient les clés alphanumériques qui activent le contrôle associé. Lorsqu’un utilisateur appuie sur la touche Alt, les touches d’accès s’affichent.

Cette plateforme UWP spécifique est utilisée pour spécifier une clé d’accès pour un VisualElement. Il est consommé en XAML en définissant la VisualElement.AccessKey propriété jointe sur une valeur alphanumérique et en définissant éventuellement la VisualElement.AccessKeyPlacement propriété jointe sur une valeur de l’énumération AccessKeyPlacement , la VisualElement.AccessKeyHorizontalOffset propriété jointe sur un doubleet la VisualElement.AccessKeyVerticalOffset propriété jointe sur un double:

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

Vous pouvez également la consommer à partir de C# à l’aide de l’API Fluent :

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);
...

La VisualElement.On<Windows> méthode spécifie que cette méthode spécifique à la plateforme s’exécutera uniquement sur le plateforme Windows universelle. La VisualElement.SetAccessKey méthode, dans l’espace Xamarin.Forms.PlatformConfiguration.WindowsSpecific de noms, est utilisée pour définir la valeur de la clé d’accès pour .VisualElement La VisualElement.SetAccessKeyPlacement méthode spécifie éventuellement la position à utiliser pour afficher l’info-bulle de touche d’accès, l’énumération AccessKeyPlacement fournissant les valeurs possibles suivantes :

  • Auto : indique que l’emplacement de l’info-bulle d’accès sera déterminé par le système d’exploitation.
  • Top : indique que l’info-bulle d’accès s’affiche au-dessus du bord supérieur du VisualElement.
  • Bottom : indique que l’info-bulle de touche d’accès s’affiche sous le bord inférieur du VisualElement.
  • Right : indique que l’info-bulle de touche d’accès s’affiche à droite du bord droit du VisualElement.
  • Left : indique que l’info-bulle de touche d’accès s’affiche à gauche du bord gauche du VisualElement.
  • Center : indique que l’info-bulle d’accès apparaît superposée au centre du VisualElement.

Notes

En règle générale, le placement du Auto conseil clé est suffisant, ce qui inclut la prise en charge des interfaces utilisateur adaptatives.

Les VisualElement.SetAccessKeyHorizontalOffset méthodes et VisualElement.SetAccessKeyVerticalOffset peuvent être utilisées pour un contrôle plus granulaire de l’emplacement de la touche d’accès. L’argument de la SetAccessKeyHorizontalOffset méthode indique jusqu’à quelle distance déplacer l’info-bulle de touche d’accès vers la gauche ou la droite, et l’argument de la SetAccessKeyVerticalOffset méthode indique jusqu’à quelle distance déplacer l’info-bulle de touche d’accès vers le haut ou vers le bas.

Notes

Les décalages de touche d’accès ne peuvent pas être définis lorsque le placement de la clé d’accès est défini Auto.

En outre, les GetAccessKeyméthodes , GetAccessKeyPlacement, GetAccessKeyHorizontalOffsetet GetAccessKeyVerticalOffset peuvent être utilisées pour récupérer une valeur de clé d’accès et son emplacement.

Le résultat est que les touches d’accès peuvent être affichées à côté de toutes VisualElement les instances qui définissent des touches d’accès, en appuyant sur la touche Alt :

Clés d’accès VisualElement spécifiques à la plateforme

Lorsqu’un utilisateur active une touche d’accès, en appuyant sur la touche Alt suivie de la touche d’accès, l’action par défaut pour le VisualElement est exécutée. Par exemple, lorsqu’un utilisateur active la clé d’accès sur un Switch, le Switch est activé. Lorsqu’un utilisateur active la clé d’accès sur un Entry, le obtient le Entry focus. Lorsqu’un utilisateur active la clé d’accès sur un Button, le gestionnaire d’événements de l’événement Clicked est exécuté.

Avertissement

Par défaut, lorsqu’une boîte de dialogue modale s’affiche, toutes les clés d’accès définies sur la page derrière la boîte de dialogue peuvent toujours être activées. Toutefois, une logique personnalisée peut être écrite pour désactiver les clés d’accès dans ce scénario. Pour ce faire, vous pouvez gérer l’événement Dispatcher.AcceleratorKeyActivated dans la MainPage classe de votre projet UWP et dans le gestionnaire d’événements en définissant la Handled propriété des arguments true d’événement sur lorsqu’une boîte de dialogue modale est affichée.

Pour plus d’informations sur les clés d’accès, consultez Clés d’accès.