Dot.Blog

C#, XAML, WinUI, WPF, Android, MAUI, IoT, IA, ChatGPT, Prompt Engineering

Améliorez l'expérience utilisateur avec les accélérateurs de clavier dans DotNet MAUI

Les accélérateurs de clavier améliorent significativement l'interaction utilisateur dans les applications DotNet MAUI en fournissant une méthode rapide pour exécuter des actions spécifiques. Cet article fournit un aperçu sur l'implémentation des accélérateurs de clavier, en incluant des exemples de code détaillés et des instructions spécifiques pour une intégration réussie.

Introduction aux accélérateurs de clavier

Les accélérateurs de clavier permettent aux utilisateurs d'effectuer des actions rapidement en utilisant des combinaisons de touches, améliorant ainsi l'efficacité et l'accessibilité de l'application. Bien entendu, cette possibilité dépend des plateformes et des devices concernées. On utilisera les accélérateurs plutôt avec des Apps desktop Windows ou MacOs. Une combinaison de touches sur Android ou iOS n'ayant que peu de sens.

Fonctionnement des accélérateurs de clavier

Un accélérateur de clavier est lié à une commande qui est exécutée lorsque l'utilisateur appuie sur une combinaison spécifique de touches. DotNet MAUI facilite l'ajout de ces fonctionnalités, rendant les applications plus intuitives et réactives.

Implémentation des accélérateurs de clavier

Les accélérateurs de clavier peuvent être ajoutés via le code C# ou XAML, offrant flexibilité et contrôle sur leur comportement.

Exemple en C#

var saveCommand = new Command(() =>
{
    Console.WriteLine("Document saved");
});
this.KeyboardAccelerators.Add(new KeyboardAccelerator
{
    Key = "S",
    Modifiers = "Control",
    Command = saveCommand
});
```


Exemple en XAML

<Button Text="Save"
        Command="{Binding SaveCommand}">
    <Button.KeyboardAccelerators>
        <KeyboardAccelerator Key="S" Modifiers="Control"/>
    </Button.KeyboardAccelerators>
</Button>
```

Spécifier plusieurs modificateurs

<MenuFlyoutItem Text="New"
                Command="{Binding NewCommand}">
    <MenuFlyoutItem.KeyboardAccelerators>
        <KeyboardAccelerator Key="N" Modifiers="Control,Shift"/>
    </MenuFlyoutItem.KeyboardAccelerators>
</MenuFlyoutItem>
```

Ou en C#

var newMenuItem = new MenuFlyoutItem
{
    Text = "New",
    Command = NewCommand
};

 

newMenuItem.KeyboardAccelerators.Add(new KeyboardAccelerator

{

    Key = "N",

    Modifiers = "Control,Shift"

});

```

Spécifier des accélérateurs de clavier par plateforme

Pour adapter les accélérateurs de clavier aux spécificités de chaque plateforme, utilisez des directives de compilation conditionnelle. Cela permet d'assurer que votre application respecte les conventions et les attentes des utilisateurs sur chaque plateforme.

#if WINDOWS
newMenuItem.KeyboardAccelerators.Add(new KeyboardAccelerator
{
    Key = "Z",
    Modifiers = "Control"
});
#elif MACCATALYST
newMenuItem.KeyboardAccelerators.Add(new KeyboardAccelerator
{
    Key = "Z",
    Modifiers = "Command"
});
#endif
```

Utiliser des touches spéciales

Les touches spéciales, telles que les touches de fonction (F1-F12), Escape, etc., peuvent également être utilisées comme accélérateurs de clavier.

var helpCommand = new Command(() =>
{
    Console.WriteLine("Help opened");
});
this.KeyboardAccelerators.Add(new KeyboardAccelerator
{
    Key = "F1",
    Command = helpCommand
});
```

Localiser un accélérateur de clavier

La localisation des accélérateurs de clavier est cruciale pour les applications multilingues. Vous devez localiser la description des accélérateurs pour correspondre aux langues prises en charge par votre application.

Pour localiser un accélérateur de clavier, vous pouvez utiliser des fichiers de ressources pour différentes langues et lier la description de l'accélérateur à ces ressources.

<!-- Resources.resx (default) -->
<string name="SaveCommandShortcut">Control+S</string>
<!-- Resources.fr.resx (French) -->
<string name="SaveCommandShortcut">Control+S</string>
```

Ensuite, utilisez cette ressource dans votre code XAML ou C# pour définir l'accélérateur de manière localisée.

Désactiver un accélérateur de clavier

Il peut être nécessaire de désactiver un accélérateur de clavier dans certaines conditions, par exemple, lorsque l'action n'est pas disponible.

saveCommand.IsEnabled = false; // Désactive l'accélérateur
saveCommand.IsEnabled = true;  // Réactive l'accélérateur
```


Conclusion

L'utilisation des accélérateurs de clavier dans vos applications DotNet MAUI peut grandement améliorer l'expérience utilisateur en fournissant des moyens rapides et accessibles pour effectuer des actions. En suivant les exemples et techniques présentés dans cet article, vous serez en mesure d'implémenter efficacement ces fonctionnalités, rendant vos applications plus intuitives et réactives.

Les accélérateurs ont été ajoutés dans DotNet 8. Vous pouvez vous référez à la documentation Microsoft pour plus d'information.

Stay Tuned !


Le Guide Complet de.NET MAUI ! Lien direct Amazon : https://amzn.eu/d/95wBULD

Près de 500 pages dédiées à l'univers .NET MAUI !

Existe aussi en version Kindle à prix réduit !

Faites des heureux, partagez l'article !
blog comments powered by Disqus