Créer des invites utilisateur Visual Studio
Les invites utilisateur sont un mécanisme d’interface utilisateur simple permettant d’inviter l’utilisateur à effectuer une sélection. Inviter l’utilisateur à créer une boîte de dialogue avec un message, un à trois boutons pour les choix et un bouton d’abandon.
Remarque
L’interface utilisateur exacte utilisée pour inviter les utilisateurs à changer dans les futures versions en fonction des commentaires des utilisateurs ou d’autres facteurs.
Les exemples courants demandent une confirmation avec une invite OK/Cancel ou demandent à l’utilisateur de choisir parmi un petit ensemble d’options (pas plus de trois).
L’utilisateur a toujours la possibilité d’ignorer l’invite sans effectuer de sélection.
Les choix présentés à l’utilisateur sont mappés pour renvoyer les valeurs du type défini dans le paramètre de TResult
type.
Parties d’une invite utilisateur
- Message
- Boutons de choix
- Bouton Ignorer
Bien démarrer
Pour commencer, suivez la section créer le projet dans la section Prise en main.
Utiliser des invites utilisateur
Ce guide décrit les scénarios suivants pour l’utilisation des invites utilisateur :
- Afficher une invite d’utilisateur
- Utiliser les options intégrées
- Créer une invite avec des options personnalisées
Afficher une invite d’utilisateur
La création d’une invite utilisateur avec le nouveau modèle d’extensibilité est aussi simple que l’appel de la ShowPromptAsync
méthode à partir des helpers ShellExtensibility et la transmission de vos options.
ShellExtensibility.ShowPromptAsync<TResult>()
La méthode ShowPromptAsync
accepte trois paramètres :
Paramètre | Type | Requise | Description |
---|---|---|---|
message | string |
Oui | Texte du message de l’invite. |
options | PromptOptions<TResult> |
Oui | Définit les choix de l’utilisateur, en les mappant pour retourner des valeurs. |
cancellationToken | CancellationToken |
Oui | Pour CancellationToken l’opération asynchrone. Lorsqu’elle est déclenchée, l’invite est fermée de force. |
Exemple
Le code suivant à l’intérieur d’un affiche Command
une invite utilisateur avec un message simple et un bouton OK.
public override async Task ExecuteCommandAsync(IClientContext context, CancellationToken cancellationToken)
{
await this.Extensibility.Shell().ShowPromptAsync("This is a user prompt.", PromptOptions.OK, cancellationToken))
}
Utiliser les options intégrées
Plusieurs ensembles PromptOptions
de prédéfinis sont disponibles dans le Kit de développement logiciel (SDK).
OK
Option | Par défaut | Valeur de retour |
---|---|---|
« OK » | Oui | true |
Ignorée | false |
OKCancel
Option | Par défaut | Valeur de retour |
---|---|---|
« OK » | Oui | true |
« Annuler » | Non | false |
Ignorée | false |
RetryCancel
Option | Par défaut | Valeur de retour |
---|---|---|
« Réessayer » | Oui | true |
« Annuler » | Non | false |
Ignorée | false |
Exemple
Créez une invite avec un seul choix « OK ».
public override async Task ExecuteCommandAsync(IClientContext context, CancellationToken ct)
{
// Asking the user to confirm an operation.
if (!await this.Extensibility.Shell().ShowPromptAsync("Continue with executing the command?", PromptOptions.OKCancel, ct))
{
return;
}
...
}
Si l’utilisateur clique sur « OK », ShowPromptAsync
retourne true
une fois attendu. Si l’utilisateur clique sur le bouton ignorer, il retourne false
.
Remplacez le choix par défaut d’une option intégrée par « Annuler »
public override async Task ExecuteCommandAsync(IClientContext context, CancellationToken ct)
{
// Asking the user to confirm an operation.
if (!await this.Extensibility.Shell().ShowPromptAsync("Continue with executing the command?", PromptOptions.OKCancel.WithCancelAsDefault(), ct))
{
return;
}
...
}
Créer une invite avec des options personnalisées
Outre les options intégrées, vous pouvez personnaliser les choix présentés à l’utilisateur et la valeur de retour mappée à chacun d’eux.
Au lieu d’utiliser les jeux définis dans PromptOptions
, créez une instance de PromptOptions<TResult>
et passez-la à ShowPromptAsync
.
Exemple
Commencez par créer un type valeur pour définir les valeurs de retour :
public enum TokenThemeResult
{
None,
Solarized,
OneDark,
GruvBox,
}
Ensuite, créez l’instance et transmettez-la PromptOptions<TResult>
avec ShowPromptAsync
les arguments et cancellationToken
les arguments requis message
:
public override async Task ExecuteCommandAsync(IClientContext context, CancellationToken ct)
{
// Custom prompt
var themeResult = await this.Extensibility.Shell().ShowPromptAsync(
"Which theme should be used for the generated output?",
new PromptOptions<TokenThemeResult>
{
Choices =
{
{ "Solarized Is Awesome", TokenThemeResult.Solarized },
{ "OneDark Is The Best", TokenThemeResult.OneDark },
{ "GruvBox Is Groovy", TokenThemeResult.GruvBox },
},
DismissedReturns = TokenThemeResult.None,
DefaultChoiceIndex = 2,
},
ct);
Debug.WriteLine($"Selected Token Theme: {themeResult}");
}
La Choices
collection mappe les choix utilisateur aux valeurs de l’énumération TokenThemeResult
. DismissedReturns
définit la valeur retournée si l’utilisateur clique sur le bouton ignorer. DefaultChoiceIndex
est un index de base zéro dans la Choices
collection qui définit le choix par défaut.
Étapes suivantes
Les exemples suivants montrent comment utiliser les invites utilisateur :