Erstellen von Visual Studio-Benutzeraufforderungen
Benutzeraufforderungen sind ein einfacher UI-Mechanismus, mit dem der Benutzer aufgefordert wird, eine Auswahl vorzunehmen. Durch Die Aufforderung des Benutzers wird ein Dialogfeld mit einer Nachricht, einer bis drei Schaltflächen für die Auswahl und einer Schaltfläche zum Schließen erstellt.
Hinweis
Die genaue Benutzeroberfläche, die verwendet wird, um Benutzer auf der Grundlage von Benutzerfeedback oder anderen Faktoren zu benachrichtigen, kann sich in zukünftigen Versionen ändern.
Häufig verwendete Beispiele fordern eine Bestätigung mit einer Eingabeaufforderung "OK/Abbrechen" an oder bitten den Benutzer, zwischen einer kleinen Gruppe von Optionen (nicht mehr als drei) auszuwählen.
Der Benutzer hat immer die Möglichkeit, die Eingabeaufforderung zu schließen, ohne eine Auswahl vorzunehmen.
Die optionen, die dem Benutzer angezeigt werden, werden den Rückgabewerten des typs zugeordnet, der TResult
im Typparameter definiert ist.
Teile einer Benutzeraufforderung
- `Message`
- Auswahlschaltflächen
- Schaltfläche "Schließen"
Erste Schritte
Folgen Sie zunächst dem Abschnitt "Projekt erstellen" im Abschnitt "Erste Schritte".
Arbeiten mit Benutzeraufforderungen
In diesem Handbuch werden die folgenden Szenarien für das Arbeiten mit Benutzeraufforderungen behandelt:
- Anzeigen einer Benutzeraufforderung
- Verwenden von integrierten Optionen
- Erstellen einer Eingabeaufforderung mit benutzerdefinierten Optionen
Anzeigen einer Benutzeraufforderung
Das Erstellen einer Benutzeraufforderung mit dem neuen Erweiterbarkeitsmodell ist so einfach wie das Aufrufen der ShowPromptAsync
Methode über die ShellExtensibility-Hilfsprogramme und das Übergeben Ihrer Optionen.
ShellExtensibility.ShowPromptAsync<TResult>()
Die Methode ShowPromptAsync
akzeptiert drei Parameter:
Parameter | Type | Erforderlich | Beschreibung |
---|---|---|---|
Nachricht | string |
ja | Der Text der Nachricht für die Eingabeaufforderung. |
Optionen | PromptOptions<TResult> |
ja | Definiert die Benutzerauswahl, ordnet sie den Rückgabewerten zu. |
cancellationToken | CancellationToken |
Ja | Der CancellationToken für den asynchronen Vorgang. Wenn die Eingabeaufforderung ausgelöst wird, wird die Eingabeaufforderung erzwungen geschlossen. |
Beispiel
Der folgende Code in einer Abbildung Command
zeigt eine Benutzeraufforderung mit einer einfachen Nachricht und einer Schaltfläche "OK".
public override async Task ExecuteCommandAsync(IClientContext context, CancellationToken cancellationToken)
{
await this.Extensibility.Shell().ShowPromptAsync("This is a user prompt.", PromptOptions.OK, cancellationToken))
}
Verwenden von integrierten Optionen
Im SDK sind mehrere Vordefinierte Sätze PromptOptions
verfügbar.
OK
Option | Standard | Rückgabewert |
---|---|---|
"OK" | Ja | true |
Verworfen | false |
OKCancel
Option | Standard | Rückgabewert |
---|---|---|
"OK" | Ja | true |
"Abbrechen" | Nein | false |
Verworfen | false |
RetryCancel
Option | Standard | Rückgabewert |
---|---|---|
"Wiederholen" | Ja | true |
"Abbrechen" | Nein | false |
Verworfen | false |
Beispiel
Erstellen Sie eine Eingabeaufforderung mit einer einzigen "OK"-Auswahl.
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;
}
...
}
Wenn der Benutzer auf "OK" klickt, ShowPromptAsync
wird er beim Warten zurückgegeben true
. Wenn der Benutzer auf die Schaltfläche "Schließen" klickt, wird sie zurückgegeben false
.
Ändern der Standardauswahl einer integrierten Option in "Abbrechen"
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;
}
...
}
Erstellen einer Eingabeaufforderung mit benutzerdefinierten Optionen
Zusätzlich zu den integrierten Optionen können Sie die für den Benutzer dargestellten Optionen und den jeweils jeweils zugeordneten Rückgabewert anpassen.
Statt die in PromptOptions
definierten Sets zu verwenden, erstellen Sie eine neue Instanz, PromptOptions<TResult>
und übergeben Sie sie an ShowPromptAsync
.
Beispiel
Erstellen Sie zunächst einen Werttyp, um die Rückgabewerte zu definieren:
public enum TokenThemeResult
{
None,
Solarized,
OneDark,
GruvBox,
}
Erstellen Sie dann die PromptOptions<TResult>
Instanz, und übergeben Sie sie ShowPromptAsync
zusammen mit den erforderlichen message
und cancellationToken
Argumenten:
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}");
}
Die Choices
Auflistung ordnet die Benutzerauswahl werten in der TokenThemeResult
Enumeration zu. DismissedReturns
legt den Wert fest, der zurückgegeben wird, wenn der Benutzer auf die Schaltfläche "Schließen" klickt. DefaultChoiceIndex
ist ein nullbasierter Index in der Choices
Auflistung, der die Standardauswahl definiert.
Nächste Schritte
Die folgenden Beispiele veranschaulichen, wie Sie mit Benutzeraufforderungen arbeiten: