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
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
- Visualizzare contenuti Fullscreen con HTML5
- Leggere e scrivere su cookie tramite Blazor
- Richiamare programmaticamente le operazioni di aggiornamento, eliminazione e inserimento di FormView, DetailsView e GridView
- Realizzare siti sicuri con ASP.NET Web Pages
- Il web control DropDownList di ASP.NET
- Un helper method per replicare un template per ogni proprietà con ASP.NET MVC
- Operazioni di selezione su una DataTable
- Dependency injection in ASP.NET MVC 5 con Ninject
- Aumentare la scalabilità di ASP.NET Core Web API con caching client side
- Accedere con ASP.NET ad un documento XML creato dall'oggetto recordset di ADO e ASP