Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Le estensioni del riquadro comandi sono applicazioni autonome .NET che comunicano con il riquadro comandi tramite un'API WinRT. Ogni estensione viene eseguita nel proprio processo e si registra con la Command Palette tramite il manifesto dell'applicazione, rendendo le estensioni isolate, sicure e facili da distribuire.
Questa pagina illustra i concetti di base del modello di estensione: come vengono individuate le estensioni, come forniscono comandi e pagine e quali tipi di esperienze è possibile creare.
Come il riquadro comandi individua le estensioni installate
La Palette dei comandi utilizza il catalogo pacchetti Windows per trovare le app installate che si dichiarano estensioni della Palette dei comandi. Le estensioni si registrano attraverso il loro .appxmanifest dichiarando un windows.appExtension con il nome com.microsoft.commandpalette:
<Extensions>
<com:Extension Category="windows.comServer">
<com:ComServer>
<com:ExeServer Executable="ExtensionName.exe" Arguments="-RegisterProcessAsComServer" DisplayName="Sample Extension">
<com:Class Id="<Extension CLSID Here>" DisplayName="Sample Extension" />
</com:ExeServer>
</com:ComServer>
</com:Extension>
<uap3:Extension Category="windows.appExtension">
<uap3:AppExtension Name="com.microsoft.commandpalette"
Id="YourApplicationUniqueId"
PublicFolder="Public"
DisplayName="Sample Extension"
Description="Sample Extension for Command Palette">
<uap3:Properties>
<CmdPalProvider>
<Activation>
<CreateInstance ClassId="<Extension CLSID Here>" />
</Activation>
<SupportedInterfaces>
<Commands />
</SupportedInterfaces>
</CmdPalProvider>
</uap3:Properties>
</uap3:AppExtension>
</uap3:Extension>
</Extensions>
Le estensioni usano un server COM out-of-process come livello di comunicazione tra l'app e la Palette dei Comandi. Non preoccuparti dei dettagli : il progetto modello gestisce la creazione del server COM, l'avvio e il marshalling automatico degli oggetti nel riquadro comandi.
Note importanti sul manifesto
- Il
AppExtensiondeve impostareNamesucom.microsoft.commandpalette. Si tratta dell'identificatore univoco usato dalla Palette dei comandi per individuare le estensioni. - L'elemento
ComServerregistra un GUID della classe COM che la Palette dei comandi utilizza per istanziare l'estensione. Assicurarsi che questo CLSID sia univoco e corrisponda a tutte e tre le posizioni nel manifesto. - L'elemento
CmdPalProvidernella sezionePropertiesspecifica il CLSID della classe COM di cui Command Palette creerà un'istanza. Attualmente è supportato soloCommands.
API di estensione
Il riquadro comandi definisce un'API WinRT (Microsoft. CommandPalette.Extensions) che le estensioni usano per comunicare con il riquadro comandi. Libreria del toolkit complementare (Microsoft. CommandPalette.Extensions.Toolkit) fornisce classi di base e helper che semplificano i modelli comuni.
Ogni estensione implementa l'IExtension interfaccia, che fornisce un metodo GetProvider che restituisce il tuo ICommandProvider. Il provider di comandi è la posizione in cui si definiscono i comandi e le pagine offerte dall'estensione.
Comandi e pagine
Le estensioni possono fornire diversi tipi di contenuto:
- Comandi di primo livello: comandi visualizzati nella home page del riquadro comandi, rendendoli immediatamente accessibili agli utenti.
- Comandi di fallback: comandi attivati quando nessun altro risultato corrisponde alla query di un utente, utile per la funzionalità basata sulla ricerca o catch-all.
- Voci di menu contestuale — Azioni aggiuntive visualizzate nel menu di scelta rapida di altri comandi.
Ogni comando può passare a una pagina che visualizza il contenuto. Il riquadro comandi supporta i tipi di pagina seguenti:
| Tipo di pagina | Descrizione |
|---|---|
| Elencare le pagine | Visualizzare un elenco ricercabile di elementi selezionabili. |
| Pagine di dettaglio | Mostra contenuto avanzato con sezioni, tag e collegamenti. |
| Pagine del modulo | Presentare i campi di input utente per i flussi di lavoro interattivi. |
| Pagine Markdown | Esegui il rendering del contenuto formattato in markdown. |
| Pagine a griglia | Visualizzare gli elementi in una raccolta o in un layout a griglia. |
Le estensioni possono anche fornire pagine di impostazioni personalizzate per la configurazione di ogni estensione e supportare il fissaggio di comandi al Dock.
Inizia subito
Pronto per creare la prima estensione? Passare a Introduzione per configurare il progetto e creare il primo comando.