Utilizzare i Glyphs per migliorare le performance in WPF

di Cristian Civera, in Windows Presentation Foundation,

In qualsiasi applicazione che si sviluppa la presenza di Label e TextBlock è sicuramente assicurata, poiché permettono di visualizzare del testo, di effettuare data binding e sono perciò un elemento primario. La semplice visualizzazione di un testo può apparentemente sembrare non onerosa, ma in realtà subentrano in gioco molti fattori come il Template, gli effetti e l'aggregazione degli elementi che contiene.

Tutto questo può sembrare banale, ma in realtà incide enormemente in un'applicazione WPF, soprattutto in presenza di molti elementi, perciò se si vogliono ottimizzare le performance e rendere l'applicativo il più leggero possibile è necessario prima di tutto intervenire sul testo. Esiste infatti una classe Glyphs, del namespace System.Windows.Documents, che permette di rappresentare del testo, ma essendo primitiva garantisce maggiori performance.

L'utilizzo è piuttosto semplice; ecco un esempio:

<Glyphs FontUri="C:\WINDOWS\Fonts\TIMES.TTF"
        FontRenderingEmSize="100"
        StyleSimulations="BoldSimulation"
        UnicodeString="Hello World!"
        Fill="Black" />

La classe ha una serie di vincoli, come l'obbligo di specificare tramite Uri il file da usare. Se questo dispone di più font occorre indicare con #numero l'indice del font da usare, mentre è obbligatorio specificare il testo come stringa (il binding effettua già la conversione da solo se possibile). Occorre però prestare attenzione al fatto che non può essere vuota ed è perciò necessario utilizzare un converter per assicurarsi che UnicodeString abbia almeno un carattere vuoto, il quale non risulta visibile. Con Fill si indica poi il Brush da utilizzare, mentre con StyleSimulations è possibile applicare gli stili grassetto e/o italico.

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi