Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo argomento presenta le principali funzionalità tipografiche di WPF. Queste funzionalità includono qualità e prestazioni migliorate del rendering del testo, supporto tipografico OpenType, testo internazionale avanzato, supporto avanzato dei tipi di carattere e nuove API di programmazione delle applicazioni di testo.
Miglioramento della qualità e delle prestazioni del testo
Il rendering del testo in WPF viene eseguito usando 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 LCD esistenti (Liquid Crystal Display), ad esempio schermi portatili, schermi Pocket PC e monitor a pannello piatto. ClearType usa il rendering dei sub pixel che consente di visualizzare il testo con una maggiore fedeltà alla forma reale allineando i caratteri su una parte frazionaria di un pixel. La risoluzione aggiuntiva aumenta la nitidezza dei piccoli dettagli nella visualizzazione del testo, rendendo molto più facile leggere per lunghi periodi. Un altro miglioramento di ClearType in WPF è l'anti-aliasing nella direzione y, che uniforma le parti superiore e inferiore delle curve poco profonde nei caratteri di testo. Per altre informazioni sulle funzionalità di ClearType, vedere ClearType Overview.For more details on ClearType features, see ClearType Overview.
Testo con antialiasing ClearType nella direzione y
L'intera pipeline di rendering del testo può essere accelerata dall'hardware in WPF, purché il computer soddisfi il livello minimo di hardware richiesto. Se il rendering non può essere eseguito tramite l'hardware, si ricorre al 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 nelle esecuzioni del glifo, all'applicazione degli effetti, all'applicazione dell'algoritmo di fusione ClearType all'output visualizzato finale. Per altre informazioni sull'accelerazione hardware, vedere Livelli di rendering della grafica.
Inoltre, il testo animato, indipendentemente dal carattere o dal glifo, sfrutta appieno la funzionalità hardware grafica abilitata da WPF. Ciò comporta un'animazione di testo uniforme.
Tipografia avanzata
Il formato del tipo di carattere OpenType è un'estensione del formato del tipo di carattere TrueType®. Il formato del tipo di carattere OpenType è stato sviluppato congiuntamente da Microsoft e Adobe e offre un'ampia gamma di funzionalità tipografiche avanzate. L'oggetto Typography espone molte delle funzionalità avanzate dei tipi di carattere OpenType, ad esempio alternative stilistiche e lavaggi. Windows SDK offre un set di tipi di carattere OpenType di esempio progettati con funzionalità avanzate, ad esempio i tipi di carattere Pericles e Pescadero. Per altre informazioni, vedere Sample OpenType Font Pack.
Il tipo di carattere Pericles OpenType contiene glifi aggiuntivi che forniscono alternative stilistiche al set standard di glifi. Nel testo seguente vengono visualizzati glifi alternativi stilistici.
Gli svolazzi sono glifi decorativi che utilizzano ornamenti elaborati spesso associati alla calligrafia. Nel testo seguente vengono visualizzati glifi standard e ornati per il font Pescadero.
Per altre informazioni sulle funzionalità di OpenType, vedere OpenType Font Features.
Supporto avanzato per il testo internazionale
WPF offre un supporto di testo internazionale avanzato fornendo le funzionalità seguenti:
La spaziatura automatica tra le righe in tutti i sistemi di scrittura, con misurazione adattiva.
Ampio sostegno per i testi internazionali. Per altre informazioni, vedere Globalizzazione per WPF.
Interruzione di riga guidata dal linguaggio, sillabazione e giustificazione.
Supporto avanzato dei tipi di carattere
WPF offre supporto avanzato per i tipi di carattere fornendo le funzionalità seguenti:
Unicode per tutto il testo. Il comportamento e la selezione dei tipi di carattere non richiedono più charset o tabella codici.
Comportamento dei tipi di carattere indipendente dalle impostazioni globali, ad esempio le impostazioni locali di sistema.
Separare i tipi FontWeight, FontStretch e FontStyle per definire un FontFamily. Ciò offre maggiore flessibilità rispetto alla programmazione Win32, in cui vengono usate 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 dei tipi di carattere e fallback dei caratteri in un file XML portabile, tramite la tecnologia dei caratteri composta. I tipi di carattere compositi consentono la costruzione di tipi di carattere multilingue completi. I tipi di carattere compositi forniscono anche un meccanismo che evita la visualizzazione di glifi mancanti. Per altre informazioni, vedere le osservazioni nella FontFamily classe .
Tipi di carattere internazionali creati da tipi di carattere compositi, usando un gruppo di tipi di carattere a lingua singola. Ciò consente di risparmiare sui costi delle risorse durante lo sviluppo di tipi di carattere per più lingue.
Tipi di carattere compositi incorporati in un documento, fornendo in tal modo la portabilità dei documenti. Per altre informazioni, vedere le osservazioni nella FontFamily classe .
Nuove API (Text Application Programming Interface)
WPF offre diverse API di testo che gli sviluppatori possono usare quando includono testo nelle applicazioni. Queste API sono raggruppate in tre categorie:
Layout e interfaccia grafica. Controlli di testo comuni per l'interfaccia utente grafica (GUI).
Disegno di testo leggero. Consente di disegnare testo direttamente agli oggetti .
Formattazione avanzata del testo. Consente di implementare un motore di testo personalizzato.
Layout e interfaccia utente
Al livello più elevato di funzionalità, le API di testo forniscono controlli comuni di interfaccia utente come Label, TextBlock, e TextBox. Questi controlli forniscono gli elementi di base dell'interfaccia utente all'interno di un'applicazione e offrono un modo semplice per presentare e interagire con il testo. Controlli come RichTextBox e PasswordBox consentono una gestione del testo più avanzata o specializzata. E classi come TextRange, TextSelectione TextPointer consentono una manipolazione del testo utile. Questi controlli dell'interfaccia utente forniscono proprietà come FontFamily, FontSizee FontStyle, che consentono di controllare il tipo di carattere usato per eseguire il rendering del testo.
Uso di effetti bitmap, trasformazioni ed effetti di testo
WPF consente di creare usi visivamente interessanti del testo usando funzionalità quali effetti bitmap, trasformazioni ed effetti di testo. Nell'esempio seguente viene illustrato un tipo tipico di effetto ombreggiatura applicato al testo.
L'esempio seguente mostra un effetto ombreggiatura e un rumore applicato al testo.
L'esempio seguente mostra un effetto bagliore esterno applicato al testo.
Nell'esempio seguente viene illustrato un effetto sfocatura applicato al testo.
Nell'esempio seguente viene illustrata la seconda riga di testo ridimensionata di 150% lungo l'asse x e la terza riga di testo ridimensionata di 150% lungo l'asse y.
L'esempio seguente mostra un testo inclinato lungo l'asse x.
Un TextEffect oggetto è un oggetto helper che consente di trattare il testo come uno o più gruppi di caratteri in una stringa di testo. Nell'esempio seguente viene illustrato un singolo carattere ruotato. Ogni carattere viene ruotato in modo indipendente a intervalli di 1 secondo.
Uso di documenti di flusso
Oltre ai controlli comuni dell'interfaccia utente, WPF offre un controllo layout per la presentazione di testo, ovvero l'elemento FlowDocument . L'elemento FlowDocument , insieme all'elemento DocumentViewer , fornisce un controllo per grandi quantità di testo con requisiti di layout diversi. I controlli layout consentono l'accesso alla tipografia avanzata tramite l'oggetto Typography e le proprietà correlate al tipo di carattere di altri controlli dell'interfaccia utente.
L'esempio seguente mostra il contenuto di testo ospitato in un FlowDocumentReader, che fornisce supporto per la ricerca, la navigazione, la paginazione e il ridimensionamento del contenuto.
Per maggiori informazioni, vedere i Documenti in WPF.
Disegno di testo leggero
È possibile disegnare testo direttamente negli oggetti WPF usando il DrawText metodo dell'oggetto DrawingContext . Per utilizzare questo metodo, creare un FormattedText oggetto . Questo oggetto consente di disegnare testo su più righe, in cui ogni carattere del testo può essere formattato singolarmente. La funzionalità dell'oggetto FormattedText contiene gran parte delle funzionalità dei flag DrawText nell'API Windows. Inoltre, l'oggetto FormattedText contiene funzionalità come il supporto dei puntini di sospensione, in cui viene visualizzato un puntino di sospensione quando il testo supera i limiti. Nell'esempio seguente viene illustrato il testo con diversi formati applicati, tra cui una sfumatura lineare nella seconda e nella terza parola.
È possibile convertire testo formattato in oggetti Geometry, consentendo di creare altri tipi di testo visivamente interessante. Ad esempio, è possibile creare un oggetto Geometry in base alla struttura di una stringa di testo.
Gli esempi seguenti illustrano diversi modi per creare effetti visivi interessanti modificando il tratto, il riempimento e l'evidenziazione del testo convertito.
Per altre informazioni sull'oggetto FormattedText , vedere Disegno di testo formattato.
Formattazione avanzata del testo
Al livello più avanzato delle API di testo, WPF offre la possibilità di creare layout di testo personalizzati usando l'oggetto TextFormatter e altri tipi nello spazio dei nomi System.Windows.Media.TextFormatting. Le classi TextFormatter e associate consentono di implementare un layout di testo personalizzato che supporta la tua definizione di formati di caratteri, stili di paragrafo, regole di interruzione di riga e altre funzionalità di layout per il testo internazionale. Esistono pochissimi casi in cui si vuole eseguire l'override dell'implementazione predefinita del supporto del layout di testo WPF. Tuttavia, se si sta creando un controllo o un'applicazione di modifica del testo, potrebbe essere necessaria un'implementazione diversa rispetto all'implementazione wpf predefinita.
A differenza di un'API di testo tradizionale, il TextFormatter interagisce con un client di layout di testo tramite un set di metodi di callback. Richiede al client di fornire questi metodi in un'implementazione della classe TextSource. Il diagramma seguente illustra l'interazione del layout di testo tra l'applicazione client e TextFormatter.
TextFormatter
Per altri dettagli sulla creazione di un layout di testo personalizzato, vedere Formattazione avanzata del testo.
Vedere anche
.NET Desktop feedback