Megosztás a következőn keresztül:


Visual Studio felhasználói kérések létrehozása

A felhasználói kérések egy egyszerű felhasználói felületi mechanizmus, amely arra kéri a felhasználót, hogy válasszon, erősítse meg az üzenetet, vagy adjon meg egy egysoros sztringbemenetet. A felhasználó kérése párbeszédpanelt hoz létre egy üzenettel, egy címsorral, egy Bezárás gombbal és egy opcionális ikonnal. Amikor a párbeszédpanel arra kéri a felhasználót, hogy válasszon egy beállításkészlet közül, az egy-három gombot is tartalmaz a választási lehetőségekhez.

Megjegyzés:

A felhasználók kéréséhez használt pontos felhasználói felület a felhasználói visszajelzések vagy egyéb tényezők alapján változhat a jövőbeli verziókban.

A felhasználói kérésnek két változata van: a beállításkérések és a bemeneti kérések.

A beállításkérések gyakori példái az OK vagy a Mégse kéréssel történő megerősítés kérése, vagy ha a felhasználót arra kéri, hogy válasszon egy kis beállításkészlet közül (legfeljebb három).

A felhasználó számára megjelenített lehetőségek a típusparaméterben TResult meghatározott típusú értékek visszaadására vannak leképezve.

Ha meg szeretné kérni a felhasználót, hogy adjon meg egy egysoros sztringbemenetet, például egy projektnevet, használjon bemeneti kérést.

A felhasználónak mindig lehetősége van arra, hogy kijelölés nélkül zárja be a kérést.

Felhasználói kérés részei

Képernyőkép, amely a felhasználói kérelem részeit mutatja.

  1. Üzenet
  2. Választási lehetőségek gombjai
  3. Bezárás gomb

Kezdj hozzá

Első lépésként kövesse az első Visual Studio-bővítmény létrehozása című szakasz lépéseit.

Felhasználói felhívások

Ez a cikk a következő forgatókönyveket ismerteti a felhasználói kérések használatával kapcsolatban:

Felhasználói kérés megjelenítése

A felhasználói kérések létrehozása az új bővíthetőségi modellel olyan egyszerű, mint meghívni a ShowPromptAsync metódust a ShellExtensibility segítőitől, és megadni a beállításokat.

ShellExtensibility.ShowPromptAsync()

A ShowPromptAsync metódus három paramétert használ:

Paraméter típus Kötelező Leírás
message string Igen A kérés üzenetének szövege.
options PromptOptions<TResult> Igen Meghatározza a felhasználói lehetőségeket, és leképezi őket visszatérési értékekre.
cancellationToken CancellationToken Igen Az aszinkron művelet CancellationToken azonosítója. Ha aktiválódik, kényszerítve bezárják a felugró ablakot.

példa

Az alábbi kód egy Command egyszerű üzenettel és egy OK gombbal jeleníti meg a felhasználói kérést.

public override async Task ExecuteCommandAsync(IClientContext context, CancellationToken cancellationToken)
{
    await this.Extensibility.Shell().ShowPromptAsync("This is a user prompt.", PromptOptions.OK, cancellationToken))
}

Beépített beállítások használata

Az SDK-ban számos előre definiált PromptOptions készlet érhető el.

OKÉ

Választás Alapértelmezett Visszaadott érték
OKÉ Igen true
Bezár false

OKCancel

Választás Alapértelmezett Visszaadott érték
OKÉ Igen true
Mégse Nem false
Bezár false

ÚjraMégse

Választás Alapértelmezett Visszaadott érték
Újrapróbálkozás Igen true
Mégse Nem false
Bezár false

Megerősítések ikonnal

Választás Alapértelmezett Visszaadott érték
OKÉ Igen true
Bezár false
Lehetőség Ikon
ErrorConfirm ImageMoniker.KnownValues.StatusError
WarningConfirm ImageMoniker.KnownValues.StatusWarning
AlertConfirm ImageMoniker.KnownValues.StatusAlert
InformationConfirm ImageMoniker.KnownValues.StatusInformation
HelpConfirm ImageMoniker.KnownValues.StatusConfirm

példa

Képernyőkép az OK gombra kattintva megjelenő felhasználói kérésről.

Hozzon létre egy parancssort egyetlen OK beállítással.

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;
    }
    
    ...
}

Ha a felhasználó az OK lehetőséget választja, ShowPromptAsync visszatér true, amikor várakozik. Ha a felhasználó a Bezárás gombot választja, az eredményül ad falsevissza.

Az alapértelmezett választás módosítása egy beépített opció esetén a visszavonásra

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;
  }
  
  ...
}

Kérés létrehozása egyéni beállításokkal

Képernyőkép egy egyéni felhasználói kérésről.

Testre is szabhatja a felhasználónak megjelenített választási lehetőségeket és az egyesre leképezett visszatérési értéket.

A definiált PromptOptions készletek használata helyett hozzon létre egy új példányt a(z) PromptOptions<TResult>-ből, és adja át a(z) ShowPromptAsync-nek.

példa

Először hozzon létre egy értéktípust a visszatérési értékek definiálásához:

public enum TokenThemeResult
{
  None,
  Solarized,
  OneDark,
  GruvBox,
}

Ezután hozza létre a PromptOptions<TResult> példányt, és adja át. ShowPromptAsync a szükséges argumentumokkal message és cancellationToken együtt.

A cím és az ikon testreszabása a Title és Icon tulajdonságok beállításával.

public override async Task ExecuteCommandAsync(IClientContext context, CancellationToken ct)
{
  // Custom prompt
  Systems selectedSystem = await shell.ShowPromptAsync(
      "Select the system to configure:",
      new PromptOptions<Systems>
      {
          Choices =
          {
              { "Core", Systems.CoreSystem },
              { "Auxiliary", Systems.AuxiliarySystem },
              { "Monitoring", Systems.MonitoringSystem },
          },
          DismissedReturns = Systems.CoreSystem,
          DefaultChoiceIndex = 2
          Title = "Configuration Assistant",
          Icon = ImageMoniker.KnownValues.Settings,
      },
      cancellationToken);

  Debug.WriteLine($"Selected system: {selectedSystem}");
}

A Choices gyűjtemény a felhasználói választásokat az egyéni Systems enum értékeire képezi le. Ha a felhasználó a Bezárás gombot választja, DismissedReturns állítsa be a visszaadott értéket. DefaultChoiceIndex egy nulla alapú index a Choices gyűjteményben, amely meghatározza az alapértelmezett választást.

Beviteli kérés létrehozása

Képernyőkép egy egyszerű beviteli kérésről.

string? projectName = await shell.ShowPromptAsync(
    "Enter the name of the project to configure?",
    InputPromptOptions.Default with { Title = "Configuration Assistant" },
    cancellationToken);

Az egyéni ikonok, például a választási lehetőségek mellett a bemeneti kérések is támogatják az alapértelmezett értéket. Állítsa be a DefaultText tulajdonságot a InputPromptOptions példányon.

Ha a felhasználó a Mégse gombra, a Bezárás gombra vagy az Esc billentyűre kattint, a visszatérési érték null lesz. Ha a felhasználó üresen hagyja a bemenetet, és az OK gombot vagy az Enter billentyűt választja, a visszatérési érték az üres sztring.

Ellenkező esetben a visszatérési érték a bemenet tartalma, amikor a felhasználó megerősíti a bejegyzést.

Az alábbi minták bemutatják, hogyan dolgozzunk a felhasználói kérésekkel.