Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Zurück: Hinzufügen von Befehlen auf oberster Ebene zu Ihrer Erweiterung
Ein IInvokableCommand stellt ein einzelnes aktionsfähiges Element in der Befehlspalette dar– es wird ausgelöst, wenn ein Benutzer einen Befehl auswählt.
Wenn Der Befehl ausgewählt ist, wird die Invoke-Methode aufgerufen. Hier implementieren Sie die Logik dafür, was Ihre Erweiterung tun soll. Die Invoke-Methode muss ein CommandResult zurückgeben, das der Befehlspalette angibt, wie nach der Ausführung des Befehls reagiert werden soll – zum Beispiel, ob eine Nachricht angezeigt, eine Datei geöffnet oder nichts ausgeführt werden soll.
Auf dieser Seite werden die 7 verschiedenen Arten von CommandResult Rückgaben erklärt und was jede davon bewirkt:
Hinweis
Es gibt Codebeispiele für die verschiedenen CommandResult-Methoden, die auf dieser Seite aufgeführt sind.
KeepOpen-Befehlsergebnis
Das KeepOpen Befehlsergebnis hat keine Wirkung. Die Palette wird im aktuellen Zustand belassen, mit dem aktuellen Seitenstack und der aktuellen Abfrage. Dies kann für Befehle nützlich sein, die den Benutzer in der Befehlspalette behalten möchten, um weiterhin mit der aktuellen Seite zu arbeiten.
Hinweis
Selbst beim Zurückgeben KeepOpenblendet das Starten einer neuen App oder eines neuen Fensters aus der Befehlspalette die Palette automatisch aus, wenn das nächste Fenster den Fokus erhält.
Befehlsergebnis ausblenden
Dieses Befehlsergebnis hält die aktuelle Seite geöffnet, blendet jedoch die Befehlspalette aus. Dies kann für Befehle nützlich sein, die den Benutzer kurz aus der Befehlspalette entfernen möchten, aber dann wieder zu diesem Kontext zurückkehren.
GoBack-Befehlsergebnis
Dieses Ergebnis führt den Benutzer zurück zu einer Seite in der Befehlspalette und hält das Fenster sichtbar. Dies eignet sich perfekt für Formularseiten, bei denen der Befehl den Benutzer zum vorherigen Kontext zurückführen sollte.
GoHome-Befehlsergebnis
Dieses Ergebnis führt den Benutzer zurück zur Hauptseite der Befehlspalette. Die Palette bleibt sichtbar (es sei denn, die Palette verliert den Fokus). Erwägen Sie dies für Szenarien, in denen Sie Ihre Befehle auf oberster Ebene geändert haben.
Befehlsergebnis schließen
Dieses Ergebnis blendet die Befehlspalette nach dem Ausführen der Aktion aus und führt sie zurück zur Startseite. Beim nächsten Start beginnt die Befehlspalette von der Hauptseite mit einer leeren Abfrage. Dies ist nützlich für Befehle, die einmalige Aktionen sind oder die die Befehlspalette nicht geöffnet lassen müssen.
Wenn Sie nicht wissen, was sonst noch zu verwenden ist, sollte dies Ihre Standardeinstellung sein. Im Idealfall sollten Benutzer in die Palette kommen, finden, was sie brauchen, und damit fertig sein.
ShowToast-Befehlsergebnis
Dieses Ergebnis zeigt dem Benutzer eine vorübergehende Meldung auf Desktopebene an. Dies ist besonders hilfreich zum Anzeigen der Bestätigung, dass eine Aktion ausgeführt wurde, wenn die Palette geschlossen wird.
Berücksichtigen Sie den CopyTextCommand in den Hilfsprogrammen. Dieser Befehl zeigt ein Popup mit dem Text „In Zwischenablage kopiert” an und blendet dann die Palette aus.
Standardmäßig zeigt das commandResult.ShowToast(string)-Hilfsprogramm ein Ergebnis von CommandResult.Dismiss an. Sie können das Ergebnis jedoch bei Bedarf in eines der anderen Ergebnisse ändern. Auf diese Weise können Sie eine Benachrichtigung anzeigen und die Palette geöffnet lassen, wenn Sie möchten.
Befehlsergebnis bestätigen
Dieses Ergebnis zeigt dem Benutzer ein Bestätigungsdialogfeld an. Wenn der Benutzer das Dialogfeld bestätigt, wird der PrimaryCommandConfirmationArgs Vorgang ausgeführt.
Dies ist nützlich für Befehle, die möglicherweise schädliche Aktionen haben, oder die Benutzerabsichten bestätigen müssen.
Beispiel
Unten ist eine Seite mit einem Befehl für jede Art von CommandResult:
-
/Pages/<ExtensionName>Page.csöffnen - Ersetzen Sie
GetItemsdurch das unten stehendeGetItems.
using Microsoft.CommandPalette.Extensions;
using Microsoft.CommandPalette.Extensions.Toolkit;
internal sealed partial class <ExtensionName>Page : ListPage
{
public <ExtensionName>Page()
{
Icon = IconHelpers.FromRelativePath("Assets\\StoreLogo.png");
Title = "Example command results";
Name = "Open";
}
public override IListItem[] GetItems()
{
ConfirmationArgs confirmArgs = new()
{
PrimaryCommand = new AnonymousCommand(
() =>
{
ToastStatusMessage t = new("The dialog was confirmed");
t.Show();
})
{
Name = "Confirm",
Result = CommandResult.KeepOpen(),
},
Title = "You can set a title for the dialog",
Description = "Are you really sure you want to do the thing?",
};
return
[
new ListItem(new AnonymousCommand(null) { Result = CommandResult.KeepOpen() }) { Title = "Keep the palette open" },
new ListItem(new AnonymousCommand(null) { Result = CommandResult.Hide() }) { Title = "Hide the palette" },
new ListItem(new AnonymousCommand(null) { Result = CommandResult.GoBack() }) { Title = "Go back" },
new ListItem(new AnonymousCommand(null) { Result = CommandResult.GoHome() }) { Title = "Go home" },
new ListItem(new AnonymousCommand(null) { Result = CommandResult.Dismiss() }) { Title = "Dismiss the palette" },
new ListItem(new AnonymousCommand(null) { Result = CommandResult.ShowToast("What's up") }) { Title = "Show a toast" },
new ListItem(new AnonymousCommand(null) { Result = CommandResult.Confirm(confirmArgs) }) { Title = "Confirm something" },
];
}
}
- Stellen Sie Ihre Erweiterung bereit
- In der Befehlspalette,
Reload
Nächstes: Anzeigen von Markdowninhalten
Verwandte Inhalte
Windows developer