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.
Die Befehlspalette bietet ein vollständiges Erweiterungsmodell, mit dem Entwickler eigene Erfahrungen für die Palette erstellen können.
Die neuesten Beispiele finden Sie im Beispielprojekt in GitHub. Es enthält aktuelle Beispiele für alles, was mit der Befehlspalette möglich ist.
Erstellen eines Befehls zum Ausführen eines Vorgangs
Erstellen Sie eine Klasse, die IInvokableCommand implementiert, und implementieren Sie die Invoke-Methode . Diese Methode wird aufgerufen, wenn der Benutzer den Befehl in der Befehlspalette auswählt.
class MyCommand : Microsoft.CommandPalette.Extensions.Toolkit.InvokableCommand {
public class MyCommand()
{
Name = "Do it"; // A short name for the command
Icon = new("\uE945"); // Segoe UI LightningBolt
}
// Open GitHub in the user's default web browser
public ICommandResult Invoke() {
Process.Start(new ProcessStartInfo("https://github.com") { UseShellExecute = true });
// Hides the Command Palette window, without changing the page that's open
return CommandResult.Hide();
}
}
Erstellen einer Seite mit Befehlen
Das folgende Beispiel zeigt, wie Sie eine Seite mit Befehlen erstellen. Diese Seite wird angezeigt, wenn der Benutzer den Befehl "Öffnen" in der Befehlspalette auswählt:
using Microsoft.CommandPalette.Extensions.Toolkit;
class MyPage : ListPage {
public MyPage()
{
Icon = IconHelpers.FromRelativePath("Assets\\StoreLogo.png");
Title = "My sample extension";
Name = "Open";
}
public override IListItem[] GetItems()
{
return [
new ListItem(new OpenUrlCommand("https://github.com"))
{
Title = "Open GitHub",
},
new ListItem(new OpenUrlCommand("https://learn.microsoft.com"))
{
Title = "Open Microsoft Learn",
},
new ListItem(new OpenUrlCommand("https://github.com/microsoft/PowerToys"))
{
Title = "Open PowerToys on GitHub",
},
new ListItem(new CopyTextCommand("Foo bar"))
{
Title = "Copy 'Foo bar' to the clipboard",
},
];
}
}
Ikonen
Symbole, die die IIconInfo-Klasse verwenden, können auf verschiedene Arten angegeben werden. Hier sind einige Beispiele:
using Microsoft.CommandPalette.Extensions.Toolkit;
namespace ExtensionName;
internal sealed class Icons
{
// Icons can be specified as a Segoe Fluent icon, ...
internal static IconInfo OpenFile { get; } = new("\uE8E5"); // OpenFile
// ... or as an emoji, ...
internal static IconInfo OpenFileEmoji { get; } = new("📂");
// ... Or as a path to an image file, ...
internal static IconInfo FileExplorer { get; } = IconHelpers.FromRelativePath("Assets\\FileExplorer.png");
// ... which can be on a remote server, or svg's, or ...
internal static IconInfo FileExplorerSvg { get; } = new("https://raw.githubusercontent.com/microsoft/PowerToys/refs/heads/main/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Indexer/Assets/FileExplorer.svg");
// Or they can be embedded in a exe / dll:
internal static IconInfo FolderIcon { get; } = new("%systemroot%\\system32\\system32\\shell32.dll,3");
}
Verwandte Inhalte
Windows developer