Funzionalità tipografiche di WPF
In questo argomento vengono presentate le funzionalità tipografiche principali di WPF. Tra queste sono incluse qualità e prestazioni migliorate di rendering del testo, supporto tipografico di OpenType, testo internazionale migliorato, supporto avanzato dei tipi di carattere e nuove API (Application Programming Interface) di testo.
Nel presente argomento sono contenute le seguenti sezioni.
- Qualità e prestazioni del testo migliorate
- Tipografia dettagliata
- Supporto del testo internazionale migliorato
- Supporto dei tipi di carattere migliorato
- Nuove API (Application Programming Interface) di testo
- Argomenti correlati
Qualità e prestazioni del testo migliorate
Il rendering del testo in WPF viene eseguito utilizzando Microsoft ClearType, che migliora la chiarezza e la leggibilità del testo. ClearType è una tecnologia software sviluppata da Microsoft che consente di migliorare la leggibilità del testo sui display LCD (Liquid Crystal Display), ad esempio gli schermi di computer portatili, Pocket PC e i monitor a schermo piatto. In ClearType viene utilizzato il rendering dei subpixel che consente di visualizzare il testo con maggiore fedeltà alla forma effettiva grazie all'allineamento dei caratteri a una parte frazionaria di un pixel. La risoluzione aggiuntiva aumenta la nitidezza dei piccoli dettagli nella visualizzazione del testo, rendendone più facile la lettura per periodi prolungati. Un altro miglioramento di ClearType in WPF è l'anti-aliasing con direzione y che smussa le parti superiori e inferiori delle curve poco pronunciate nei caratteri di testo. Per informazioni dettagliate sulle funzionalità di ClearType, vedere Cenni preliminari su ClearType.
Testo con anti-aliasing con direzione y ClearType
È possibile applicare l'accelerazione hardware all'intera pipeline di rendering del testo in WPF, purché il computer in uso soddisfi i requisiti hardware minimi richiesti. Se non è possibile eseguire il rendering tramite hardware, viene eseguito il rendering software. L'accelerazione hardware influisce su tutte le fasi della pipeline di rendering del testo, dall'archiviazione di singoli glifi, alla composizione di glifi, all'applicazione di effetti, all'applicazione dell'algoritmo di sfumatura di ClearType all'output finale visualizzato. Per ulteriori informazioni sull'accelerazione hardware, vedere Livelli di rendering della grafica.
Diagramma della pipeline di rendering del testo
Il testo animato, mediante carattere o glifo, sfrutta inoltre completamente la funzionalità hardware grafica abilitata da WPF, con il risultato di ottenere un'animazione del testo uniforme.
Tipografia dettagliata
Il formato del tipo di carattere OpenType è un'estensione del formato TrueType®. Il formato del tipo di carattere OpenType è stato sviluppato congiuntamente da Microsoft e Adobe e offre un vasto assortimento di funzionalità tipografiche avanzate. L'oggetto Typography espone molte delle funzionalità avanzate dei tipi di carattere OpenType, ad esempio alternative e caratteri ornati stilistici. Windows SDK fornisce un insieme di tipi di carattere OpenType di esempio con funzionalità dettagliate, ad esempio i tipi di carattere Pericles e Pescadero. Per ulteriori informazioni, vedere Esempio di pacchetto di tipi di carattere OpenType.
Il tipo di carattere OpenType Pericles contiene glifi aggiuntivi che offrono alternative stilistiche all'insieme di glifi standard. Nel testo seguente sono visualizzati glifi alternativi stilistici.
Testo con glifi alternativi stilistici OpenType
I caratteri ornati sono glifi decorativi che utilizzano ornamentazione elaborata spesso associata alla calligrafia. Nel testo seguente sono visualizzati glifi standard e ornati per il tipo di carattere Pescadero.
Testo con glifi standard e ornati OpenType
Per informazioni dettagliate sulle funzionalità di OpenType, vedere Funzionalità dei tipi di carattere OpenType.
Supporto del testo internazionale migliorato
WPF fornisce un migliore supporto del testo internazionale mediante le funzionalità seguenti:
Interlinea automatica in tutti i sistemi di scrittura, tramite misurazione adattiva.
Ampio supporto per il testo internazionale. Per ulteriori informazioni, vedere Globalizzazione per WPF.
Interruzione di riga, sillabazione e giustificazione in base alla lingua.
Supporto dei tipi di carattere migliorato
WPF fornisce un migliore supporto dei tipi di carattere mediante le funzionalità seguenti:
Unicode per ogni testo. Il comportamento e la selezione del tipo di carattere non richiedono più set di caratteri o tabelle codici.
Comportamento del tipo di carattere indipendente dalle impostazioni globali, ad esempio le impostazioni locali del sistema.
Tipi FontWeight, FontStretch e FontStyle separati per la definizione di FontFamily. Offre maggiore flessibilità rispetto alla programmazione Win32, in cui vengono utilizzate combinazioni booleane di corsivo e grassetto per definire una famiglia di caratteri.
Direzione di scrittura (orizzontale o verticale) gestita indipendentemente dal nome del carattere.
Collegamento e fallback dei tipi di carattere in un file XML portabile, con tecnologia dei tipi di carattere composti. I tipi di carattere composti consentono la costruzione di una gamma completa di tipi di carattere multilingua. Offrono inoltre un meccanismo che evita la visualizzazione di glifi mancanti. Per ulteriori informazioni, vedere le note nella classe FontFamily.
Tipi di carattere internazionali compilati da tipi di carattere composti, mediante un gruppo di tipi di carattere di una singola lingua. In questo modo, si risparmiano risorse durante lo sviluppo dei tipi di carattere per più lingue.
Tipi di carattere composti incorporati in un documento, per offrire maggiore portabilità dei documenti. Per ulteriori informazioni, vedere le note nella classe FontFamily.
Nuove API (Application Programming Interface) di testo
WPF fornisce varie APIs di testo che gli sviluppatori possono utilizzare per l'inserimento di testo nelle applicazioni. Le APIs sono raggruppate in tre categorie:
Layout e interfaccia utente. Controlli di testo comuni per graphical user interface (GUI).
Disegno di testo leggero. Consente di disegnare direttamente il testo negli oggetti.
Formattazione di testo avanzata Consente di implementare un motore di testo personalizzato.
Layout e interfaccia utente
Al livello più alto di funzionalità, le APIs di testo forniscono controlli user interface (UI) comuni, ad esempio Label, TextBlock e TextBox. Questi controlli forniscono gli elementi di base di UI all'interno di un'applicazione e offrono un modo semplice per presentare il testo e interagire con esso. Controlli quali RichTextBox e PasswordBox consentono una gestione del testo più avanzata o specializzata. Classi quali TextRange, TextSelection e TextPointer consentono un'utile manipolazione del testo. I controlli UI forniscono proprietà quali FontFamily, FontSize e FontStyle che permettono di controllare il tipo di carattere utilizzato per il rendering del testo.
Utilizzo di effetti bitmap, trasformazioni ed effetti di testo
WPF consente di utilizzare il testo in modi visivamente interessanti grazie a funzionalità quali effetti bitmap, trasformazioni ed effetti di testo. Nell'esempio riportato di seguito viene illustrato un tipo comune di effetto ombreggiatura applicato al testo.
Testo con ombreggiatura
Nell'esempio riportato di seguito viene illustrato un effetto ombreggiatura e un rumore applicato al testo.
Testo con ombreggiatura e rumore
Nell'esempio riportato di seguito viene illustrato un effetto di alone esterno applicato al testo.
Testo con effetto di alone esterno
Nell'esempio riportato di seguito viene illustrato un effetto sfocatura applicato al testo.
Testo con effetto sfocatura
Nell'esempio riportato di seguito viene illustrata la seconda riga del testo scalata del 150% lungo l'asse x e la terza riga del testo scalata del 150% lungo l'asse y.
Testo con ScaleTransform
Nell'esempio riportato di seguito viene illustrato un testo inclinato lungo l'asse x.
Testo con SkewTransform
TextEffect è un oggetto di supporto che consente di trattare il testo come uno o più gruppi di caratteri in una stringa di testo. Nell'esempio seguente viene illustrata la rotazione di un singolo carattere. Ciascun carattere viene ruotato in modo indipendente a intervalli di 1 secondo.
Esempio di animazione con effetto di rotazione del testo
Utilizzo di documenti dinamici
Oltre ai controlli comuni dell'UI, WPF offre un controllo di layout per la presentazione del testo, l'elemento FlowDocument. L'elemento FlowDocument, insieme all'elemento DocumentViewer, fornisce un controllo per grandi quantità di testo con diversi requisiti di layout. I controlli di layout offrono l'accesso alla tipografia avanzata tramite l'oggetto Typography e proprietà correlate al tipo di carattere di altri controlli dell'UI.
Nell'esempio riportato di seguito viene illustrato contenuto di testo ospitato in un oggetto FlowDocumentReader che fornisce supporto per ricerca, spostamento, paginazione e ridimensionamento del contenuto.
Testo ospitato in FlowDocumentReader
Per ulteriori informazioni, vedere Documenti in WPF.
Disegno di testo leggero
È possibile disegnare direttamente il testo su oggetti WPF utilizzando il metodo DrawText dell'oggetto DrawingContext. Per utilizzare questo metodo, occorre creare un oggetto FormattedText. Questo oggetto consente di disegnare un testo su più righe nel quale ogni carattere può essere formattato singolarmente. La funzionalità dell'oggetto FormattedText contiene molte funzionalità dei flag DrawText nell'API Win32. Inoltre, l'oggetto FormattedText contiene funzionalità quali il supporto dei puntini di sospensione, che prevede la visualizzazione dei puntini di sospensione quando il testo supera i limiti. Nell'esempio riportato di seguito viene illustrato un testo a cui sono stati applicati diversi formati, inclusa una sfumatura lineare sulla seconda e la terza parola.
Testo visualizzato con l'oggetto FormattedText
È possibile convertire il testo formattato in oggetti Geometry, per creare altri tipi di testo visivamente interessante. Ad esempio, è possibile creare un oggetto Geometry in base alla struttura di una stringa di testo.
Struttura di testo con pennello sfumato lineare
Negli esempi seguenti vengono illustrate varie modalità di creazione di effetti visivi interessanti tramite la modifica del tratto, del riempimento e dell'evidenziazione del testo convertito.
Esempio di impostazione di tratto e riempimento in colori diversi
Esempio di pennello di immagine applicato al tratto
Esempio di pennello di immagine applicato al tratto e all'evidenziazione
Per ulteriori informazioni sull'oggetto FormattedText, vedere Disegno di testo formattato.
Formattazione di testo avanzata
Al livello più avanzato delle APIs di testo, WPF offre la possibilità di creare layout di testo personalizzato utilizzando l'oggetto TextFormatter e altri tipi nello spazio dei nomi System.Windows.Media.TextFormatting. L'oggetto TextFormatter e le classi associate consentono di implementare il layout di testo personalizzato che supporta la definizione di formati di carattere, stili di paragrafo, regole di interruzione di riga e altre funzionalità di layout per il testo internazionale. Sono pochi i casi in cui occorre eseguire l'override dell'implementazione predefinita del supporto di layout di testo di WPF. Se tuttavia occorre creare un controllo o un'applicazione di modifica del testo, potrebbe essere necessaria un'implementazione diversa da quella predefinita di WPF.
A differenza di un'API di testo tradizionale, l'oggetto TextFormatter interagisce con un client di layout di testo tramite un insieme di metodi di callback. È necessario che il client fornisca questi metodi in un'implementazione della classe TextSource. Il diagramma seguente illustra l'interazione di layout di testo tra l'applicazione client e TextFormatter.
Interazione tra applicazione e TextFormatter
Per informazioni dettagliate sulla creazione di layout di testo personalizzato, vedere Formattazione del testo avanzata.
Vedere anche
Riferimenti
Concetti
Cenni preliminari su ClearType
Funzionalità dei tipi di carattere OpenType
Formattazione del testo avanzata
Ottimizzazione delle prestazioni: testo