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
Implementare l'infinite scroll con QuickGrid in Blazor Server
Utilizzare la versione generica di EntityTypeConfiguration in Entity Framework Core
Aggiungere interattività lato server in Blazor 8
Short-circuiting della Pipeline in ASP.NET Core
Usare una container image come runner di GitHub Actions
Creare alias per tipi generici e tuple in C#
Ottimizzare la latenza in Blazor 8 tramite InteractiveAuto render mode
Ottimizzare il mapping di liste di tipi semplici con Entity Framework Core
Assegnare un valore di default a un parametro di una lambda in C#
Eseguire una GroupBy per entity in Entity Framework
Evitare (o ridurre) il repo-jacking sulle GitHub Actions
Utilizzare la libreria Benchmark.NET per misurare le performance