Creación de mensajes de usuario de Visual Studio
Las solicitudes de usuario son un mecanismo de interfaz de usuario sencillo para pedir al usuario que realice una selección. Al preguntar al usuario se crea un cuadro de diálogo con un mensaje, uno a tres botones para las opciones y un botón descartar.
Nota:
La interfaz de usuario exacta que se usa para preguntar a los usuarios puede cambiar en versiones futuras en función de los comentarios del usuario u otros factores.
Algunos ejemplos comunes son solicitar confirmación con un mensaje aceptar o cancelar, o pedir al usuario que elija entre un pequeño conjunto de opciones (no más de tres).
El usuario siempre tiene la opción de descartar el mensaje sin realizar una selección.
Las opciones presentadas al usuario se asignan a los valores devueltos del tipo definido en el TResult
parámetro type.
Partes de un mensaje de usuario
- Mensaje
- Botones de elección
- Descartar botón
Introducción
Para empezar, siga la sección Crear el proyecto en la sección Introducción.
Trabajar con solicitudes de usuario
En esta guía se describen los siguientes escenarios para trabajar con solicitudes de usuario:
- Mostrar un mensaje de usuario
- Uso de opciones integradas
- Creación de un símbolo del sistema con opciones personalizadas
Mostrar un mensaje de usuario
La creación de una solicitud de usuario con el nuevo modelo de extensibilidad es tan simple como llamar al ShowPromptAsync
método desde los asistentes de ShellExtensibility y pasar las opciones.
ShellExtensibility.ShowPromptAsync<TResult>()
El método ShowPromptAsync
toma tres parámetros:
Parámetro | Type | Obligatorio | Descripción |
---|---|---|---|
message | string |
sí | Texto del mensaje para el mensaje. |
options | PromptOptions<TResult> |
sí | Define las opciones de usuario y las asigna para devolver valores. |
cancellationToken | CancellationToken |
Sí | para CancellationToken la operación asincrónica. Cuando se desencadena, el símbolo del sistema se cierra por fuerza. |
Ejemplo
El código siguiente dentro de muestra Command
un mensaje de usuario con un mensaje simple y un botón Aceptar.
public override async Task ExecuteCommandAsync(IClientContext context, CancellationToken cancellationToken)
{
await this.Extensibility.Shell().ShowPromptAsync("This is a user prompt.", PromptOptions.OK, cancellationToken))
}
Uso de opciones integradas
Hay varios conjuntos predefinidos PromptOptions
disponibles en el SDK.
OK (CORRECTO)
Opción | Valor predeterminado | Valor devuelto |
---|---|---|
"Ok" | Sí | true |
Descartado | false |
OKCancel
Opción | Valor predeterminado | Valor devuelto |
---|---|---|
"Ok" | Sí | true |
"Cancelar" | No | false |
Descartado | false |
RetryCancel
Opción | Valor predeterminado | Valor devuelto |
---|---|---|
"Reintentar" | Sí | true |
"Cancelar" | No | false |
Descartado | false |
Ejemplo
Cree un símbolo del sistema con una única opción "Aceptar".
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 el usuario hace clic en "Aceptar", ShowPromptAsync
devuelve true
cuando se espera. Si el usuario hace clic en el botón descartar, devuelve false
.
Cambie la opción predeterminada de una opción integrada a "Cancelar".
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;
}
...
}
Creación de un símbolo del sistema con opciones personalizadas
Además de las opciones integradas, puede personalizar las opciones presentadas al usuario y el valor devuelto asignado a cada uno.
En lugar de usar los conjuntos definidos en PromptOptions
, cree una nueva instancia de PromptOptions<TResult>
y pásela a ShowPromptAsync
.
Ejemplo
Empiece por crear un tipo de valor para definir los valores devueltos:
public enum TokenThemeResult
{
None,
Solarized,
OneDark,
GruvBox,
}
A continuación, cree la PromptOptions<TResult>
instancia y pásela junto ShowPromptAsync
con los argumentos y cancellationToken
necesariosmessage
:
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
colección asigna las opciones de usuario a los valores de la TokenThemeResult
enumeración. DismissedReturns
establece el valor que se devuelve si el usuario hace clic en el botón descartar. DefaultChoiceIndex
es un índice de base cero en la Choices
colección que define la opción predeterminada.
Pasos siguientes
En los ejemplos siguientes se muestra cómo trabajar con solicitudes de usuario: