Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Poprzedni: Dodawanie poleceń najwyższego poziomu do rozszerzenia
Element IInvokableCommand reprezentuje pojedynczy element z możliwością działania w palecie poleceń — jest on wyzwalany po wybraniu polecenia przez użytkownika.
Po wybraniu polecenia wywoływana jest metoda Invoke . W tym miejscu implementujesz logikę dla tego, co powinno zrobić rozszerzenie. Metoda Invoke musi zwrócić CommandResult, który informuje paletę poleceń, jak odpowiedzieć po uruchomieniu polecenia — na przykład czy wyświetlić komunikat, otworzyć plik lub nic nie zrobić.
Na tej stronie wyjaśniono 7 różnych typów CommandResult , które można zwrócić i co robi każdy z nich:
Uwaga
Istnieją przykłady kodu dla różnych metod CommandResult wymienionych na tej stronie.
Wynik polecenia KeepOpen
Wynik polecenia KeepOpen nie daje efektu. Pozostawia paletę w bieżącym stanie z bieżącym stosem strony i zapytaniem. Może to być przydatne w przypadku poleceń, które chcą zachować użytkownika w palecie poleceń, aby kontynuować pracę z bieżącą stroną.
Uwaga
Nawet gdy zwracane jest KeepOpen, uruchomienie nowej aplikacji lub okna z palety poleceń spowoduje automatyczne ukrycie palety, gdy następne okno otrzyma fokus.
Ukryj wynik polecenia
Ten wynik polecenia utrzymuje otwartą bieżącą stronę, ale ukrywa paletę poleceń. Może to być przydatne w przypadku poleceń, które chcą na krótko wyłączyć użytkownika z palety poleceń, po czym mogą wrócić do tego kontekstu.
Wynik polecenia GoBack
Ten wynik pobiera użytkownika z powrotem na stronę w palecie poleceń i utrzymuje widoczne okno. Jest to idealne rozwiązanie dla stron formularzy, w których wykonanie polecenia powinno spowodować powrót użytkownika do poprzedniego kontekstu.
Wynik polecenia Narzędzia GoHome
Ten wynik powoduje powrót użytkownika do strony głównej palety poleceń. Pozostawi ona widoczną paletę (chyba że paleta utraci fokus). Rozważ użycie tej opcji w scenariuszach, w których zmieniono polecenia najwyższego poziomu.
Odrzuć wynik polecenia
Ten wynik ukrywa paletę poleceń po wykonaniu akcji i wraca do strony głównej. W następnym uruchomieniu paleta poleceń rozpocznie się od strony głównej z pustym zapytaniem. Jest to przydatne w przypadku poleceń jednorazowych lub takich, które nie muszą utrzymywać otwartej Palety Poleceń.
Jeśli nie wiesz, czego jeszcze użyć, powinno to być ustawienie domyślne. W idealnym przypadku użytkownicy powinni wejść do palety, znaleźć to, czego potrzebują, i zakończyć korzystanie z niej.
Wynik polecenia ShowToast
Ten wynik wyświetla użytkownikowi komunikat przejściowy na poziomie pulpitu. Jest to szczególnie przydatne w przypadku wyświetlania potwierdzenia, że akcja miała miejsce, gdy paleta będzie zamknięta.
Rozważ komendę CopyTextCommand w pomocnikach — ta komenda wyświetli powiadomienie z tekstem "Skopiowane do schowka", a następnie zamknie paletę.
Domyślnie obiekt pomocniczy CommandResult.ShowToast(string) będzie miał wynikCommandResult.Dismiss. Można jednak zmienić wynik na dowolny z innych wyników, jeśli chcesz. Dzięki temu można wyświetlić powiadomienie i pozostawić paletę otwartą, jeśli sobie życzysz.
Potwierdź wynik polecenia
Ten wynik wyświetla użytkownikowi okno dialogowe potwierdzenia. Jeśli użytkownik potwierdzi okno dialogowe, zostanie wykonane PrimaryCommand z ConfirmationArgs.
Jest to przydatne w przypadku poleceń, które mogą mieć destrukcyjne akcje lub muszą potwierdzić intencję użytkownika.
Przykład
Poniżej znajduje się strona z jednym poleceniem dla każdego typu CommandResult:
- Otwórz
/Pages/<ExtensionName>Page.cs - Zastąp
GetItemselement poniższym kodemGetItems:
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" },
];
}
}
- Wdrażanie rozszerzenia
- W palecie poleceń,
Reload
Dalej: Wyświetlanie zawartości markdown
Powiązana zawartość
Windows developer