Tra le novità introdotte da Windows 10 versione 1803 (conosciuto come Redstone 4) vi è la possibilità di aggiungere metadati al controllo RichEditBox.
Il modo più rapido per aggiungere questi metadati è utilizzare il prefisso "@" prima di una parola. Comportamento utilizzato da Facebook e Twitter per taggare le persone in un post.
L'aggiunta di questi metadati avviene mediante la classe ContentLink, quest'ultima è a tutti gli effetti di informazioni "pescate" da un provider.
I provider rivestono un ruolo fondamentale in quanto, come detto, forniscono le informazioni, visualizzate durante la digitazione. Out-of-the-box Windows fornisce due provider: ContactContentLinkProvider e PlaceContentLinkProvider, rispettivamente per fornire una lista di contatti o di luoghi.
<RichEditBox VerticalAlignment="Top" Margin="20"> <RichEditBox.ContentLinkProviders> <ContentLinkProviderCollection> <ContactContentLinkProvider/> </ContentLinkProviderCollection> </RichEditBox.ContentLinkProviders> </RichEditBox>
Il codice precedente imposta il ContenProvider utilizzato dalla nostra RichTextEdit per mostrare una lista di contatti (presi dalla rubrica) che corrispondono al criterio di ricerca specificato dopo il carattere "@".

Una volta selezionato un contatto dalla lista, il suo nome sarà evidenziato e sarà possibile, all'evento di click, lanciare l'azione associata come, ad esempio, aprire la scheda dello stesso.
Il codice sorgente di questo script è disponibile su GitHub al seguente indirizzo https://github.com/aspitalia/scripts-windows/tree/master/script-198
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Estrarre dati randomici da una lista di oggetti in C#
Come EF 8 ha ottimizzato le query che usano il metodo Contains
Disabilitare automaticamente un workflow di GitHub
Recuperare App Service cancellati su Azure
Evitare il flickering dei componenti nel prerender di Blazor 8
Garantire la provenienza e l'integrità degli artefatti prodotti su GitHub
Applicare un filtro per recuperare alcune issue di GitHub
Usare i servizi di Azure OpenAI e ChatGPT in ASP.NET Core con Semantic Kernel
Creare una libreria CSS universale: Immagini
Proteggere le risorse Azure con private link e private endpoints
Eliminare una project wiki di Azure DevOps
Evitare (o ridurre) il repo-jacking sulle GitHub Actions