Tworzenie monitów użytkownika programu Visual Studio
Monity użytkownika to prosty mechanizm interfejsu użytkownika umożliwiający monitowanie użytkownika o dokonanie wyboru. Monitowanie użytkownika o utworzenie okna dialogowego z komunikatem, jeden do trzech przycisków wyboru i przycisk odrzuć.
Uwaga
Dokładny interfejs użytkownika używany do monitowania użytkowników może ulec zmianie w przyszłych wersjach na podstawie opinii użytkowników lub innych czynników.
Typowe przykłady to żądanie potwierdzenia z monitem OK/Anuluj lub poproś użytkownika o wybranie spośród małego zestawu opcji (nie więcej niż trzy).
Użytkownik zawsze ma możliwość odrzucenia monitu bez dokonywania wyboru.
Opcje przedstawione użytkownikowi są mapowane na zwracanie wartości typu zdefiniowanego w parametrze TResult
typu.
Części monitu użytkownika
- Wiadomość
- Przyciski wyboru
- Przycisk Odrzuć
Rozpocznij
Aby rozpocząć, postępuj zgodnie z sekcją tworzenie projektu w sekcji Wprowadzenie.
Praca z monitami użytkownika
W tym przewodniku opisano następujące scenariusze pracy z monitami użytkownika:
- Wyświetlanie monitu użytkownika
- Korzystanie z wbudowanych opcji
- Tworzenie monitu z opcjami niestandardowymi
Wyświetlanie monitu użytkownika
Utworzenie monitu użytkownika przy użyciu nowego modelu rozszerzalności jest tak proste, jak wywoływanie ShowPromptAsync
metody z pomocników ShellExtensibility i przekazywanie opcji.
ShellExtensibility.ShowPromptAsync<TResult>()
Metoda ShowPromptAsync
przyjmuje trzy parametry:
Parametr | Type | Wymagania | opis |
---|---|---|---|
wiadomość | string |
tak | Tekst komunikatu dla monitu. |
options | PromptOptions<TResult> |
tak | Definiuje opcje użytkownika, mapowanie ich w celu zwrócenia wartości. |
cancellationToken | CancellationToken |
Tak | Element CancellationToken dla operacji asynchronicznych. Po wyzwoleniu monit zostanie wymuszony. |
Przykład
Poniższy kod wewnątrz elementu Command
wyświetla monit użytkownika z prostym komunikatem i przyciskiem OK.
public override async Task ExecuteCommandAsync(IClientContext context, CancellationToken cancellationToken)
{
await this.Extensibility.Shell().ShowPromptAsync("This is a user prompt.", PromptOptions.OK, cancellationToken))
}
Korzystanie z wbudowanych opcji
W zestawie SDK jest dostępnych kilka zestawów wstępnie zdefiniowanych PromptOptions
.
OK
Opcja wyboru | Wartość domyślna | Wartość zwracana |
---|---|---|
"OK" | Tak | prawda |
Oddalił | fałsz |
OKCancel
Opcja wyboru | Wartość domyślna | Wartość zwracana |
---|---|---|
"OK" | Tak | prawda |
"Anuluj" | Nie. | fałsz |
Oddalił | fałsz |
Ponów próbęCancel
Opcja wyboru | Wartość domyślna | Wartość zwracana |
---|---|---|
"Ponów próbę" | Tak | prawda |
"Anuluj" | Nie. | fałsz |
Oddalił | fałsz |
Przykład
Utwórz monit z jednym wyborem "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;
}
...
}
Jeśli użytkownik kliknie przycisk "OK", ShowPromptAsync
zwraca true
wartość w przypadku oczekiwania. Jeśli użytkownik kliknie przycisk odrzucania, zwraca wartość false
.
Zmiana domyślnego wyboru wbudowanej opcji na "Anuluj"
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;
}
...
}
Tworzenie monitu z opcjami niestandardowymi
Oprócz wbudowanych opcji można dostosować opcje prezentowane użytkownikowi i zwracanej wartości zamapowanej na poszczególne.
Zamiast używać zestawów zdefiniowanych w PromptOptions
programie , utwórz nowe wystąpienie PromptOptions<TResult>
klasy i przekaż je do ShowPromptAsync
klasy .
Przykład
Zacznij od utworzenia typu wartości w celu zdefiniowania zwracanych wartości:
public enum TokenThemeResult
{
None,
Solarized,
OneDark,
GruvBox,
}
Następnie utwórz PromptOptions<TResult>
wystąpienie i przekaż je wraz ShowPromptAsync
z wymaganymi message
argumentami i cancellationToken
:
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}");
}
Kolekcja Choices
mapuje opcje użytkownika na wartości w wyliczenie TokenThemeResult
. DismissedReturns
Ustawia wartość zwracaną, jeśli użytkownik kliknie przycisk odrzucania. DefaultChoiceIndex
jest indeksem Choices
opartym na zera w kolekcji, który definiuje wybór domyślny.
Następne kroki
W poniższych przykładach pokazano, jak pracować z monitami użytkownika: