Condividi tramite


Funzionalità tipografiche di Windows Presentation Foundation

Aggiornamento: novembre 2007

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
  • Risorse
  • Argomenti correlati

Qualità e prestazioni del testo migliorate

Il rendering del testo contenuto in WPF viene eseguito mediante Microsoft ClearType, che migliora la chiarezza e la leggibilità del testo. ClearType è una tecnologia software sviluppata da Microsoft che migliora la leggibilità del testo sugli schermi a cristalli liquidi (LCD), 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

Testo con anti-aliasing della 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

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

Testo con glifi di stile alternativo 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

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 Windows Presentation Foundation.

  • 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 API di testo che gli sviluppatori possono utilizzare per l'inserimento di testo nelle applicazioni. Le API sono raggruppate in tre categorie:

  • Layout e interfaccia utente. Controlli di testo comuni per interfaccia utente grafica (GUI, Graphical User Interface).

  • 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 API di testo forniscono controlli interfaccia utente comuni, ad esempio Label, TextBlock e TextBox. Questi controlli forniscono gli elementi di base di interfaccia utente 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 interfaccia utente 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

Ombreggiatura del testo con Softness = 0.25

Nell'esempio riportato di seguito viene illustrato un effetto ombreggiatura e un rumore applicato al testo.

Testo con ombreggiatura e rumore

Ombreggiatura del testo con rumore

Nell'esempio riportato di seguito viene illustrato un effetto di alone esterno applicato al testo.

Testo con effetto di alone esterno

Ombreggiatura del testo con OuterGlowBitmapEffect

Nell'esempio riportato di seguito viene illustrato un effetto sfocatura applicato al testo.

Testo con effetto sfocatura

Ombreggiatura del testo con BlurBitmapEffect

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

Testo ridimensionato con ScaleTransform

Nell'esempio riportato di seguito viene illustrato un testo inclinato lungo l'asse x.

Testo con SkewTransform

Testo inclinato 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 riportato di seguito tratto da Esempio TextEffect viene illustrato un singolo carattere ruotato. Ogni carattere è ruotato in modo indipendente a intervalli di 1 secondo.

Esempio di animazione con effetto di rotazione del testo

Schermata di effetto rotazione del testo

Utilizzo di documenti dinamici

Oltre ai controlli comuni dell'interfaccia utente, 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'interfaccia utente.

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

Schermata di esempio di utilizzo di tipi di carattere OpenType

Per ulteriori informazioni, vedere Documenti di Windows Presentation Foundation.

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

Testo visualizzato utilizzando 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

Struttura di testo con pennello sfumato lineare

Negli esempi riportati di seguito 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

Testo con colori diversi per tratto e riempimento

Esempio di pennello di immagine applicato al tratto

Testo con tratto con immagine applicato

Esempio di pennello di immagine applicato al tratto e all'evidenziazione

Testo con tratto con immagine applicato

Per ulteriori informazioni sull'oggetto FormattedText, vedere Disegno di testo formattato.

Formattazione di testo avanzata

Al livello più avanzato delle API 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

Diagramma del client del layout di testo e TextFormatter

Per informazioni dettagliate sulla creazione di layout di testo personalizzato, vedere Formattazione del testo avanzata.

Risorse

Una tecnica utile per approfondire l'utilizzo delle funzionalità OpenType consiste nell'utilizzare XAMLPad per la creazione di markup al fine di sperimentare l'impiego di proprietà tipografiche diverse. Per ulteriori informazioni, vedere XAMLPad.

Test dei tipi di carattere OpenType con XAMLPad

XamlPad con le funzionalità OpenType

Vedere anche

Concetti

Cenni preliminari su ClearType

Funzionalità dei tipi di carattere OpenType

Disegno di testo formattato

Formattazione del testo avanzata

Ottimizzazione delle prestazioni: testo

XAMLPad

Riferimenti

FormattedText

TextFormatter

Altre risorse

Tipografia Microsoft