Typographie dans WPF
Cette rubrique présente les principales fonctionnalités typographiques de WPF. Ces fonctionnalités incluent l'amélioration de la qualité et des performances de rendu de texte, une prise en charge de la typographie OpenType, un texte international amélioré, une prise en charge de police améliorée et de nouvelles interfaces de programmation d'applications (API, Application Programming Interface) textes.
Cette rubrique comprend les sections suivantes.
- Amélioration de la qualité et des performances du texte
- Typographie riche
- Prise en charge de texte international améliorée
- Prise en charge de police améliorée
- Nouvelles interfaces de programmation d'applications (API) textes
- Rubriques connexes
Amélioration de la qualité et des performances du texte
Le texte dans WPF est restitué à l'aide de Microsoft ClearType, ce qui améliore sa clarté et sa lisibilité. ClearType est une technologie logicielle développée par Microsoft qui améliore la lisibilité de texte sur les écrans LCD existants, tels que les écrans d'ordinateurs portables, les écrans de Pocket PC et les écrans plats. ClearType utilise un rendu d'une précision inférieure au pixel qui permet l'affichage du texte avec une fidélité supérieure à sa forme réelle en alignant les caractères sur une fraction d'un pixel. La résolution supplémentaire augmente la netteté des détails dans l'affichage textuel, ce qui facilite grandement la lecture sur de longues périodes. Une autre amélioration de ClearType dans WPF est l'anticrénelage de direction y qui lisse le haut et le bas des courbes superficielles dans les caractères de texte. Pour plus d'informations sur les fonctionnalités ClearType, consultez Vue d'ensemble de ClearType.
Texte avec anticrénelage de direction y ClearType
L'ensemble du pipeline de rendu de texte peut être accéléré par matériel dans WPF, sous réserve que votre ordinateur respecte le niveau matériel minimum requis. Un rendu ne pouvant pas être exécuté à l'aide de matériel correspond à un rendu logiciel. L'accélération matérielle affecte toutes les phases du pipeline de rendu de texte, du stockage de glyphes individuels à l'application de l'algorithme de fusion ClearType à la sortie finale affichée, en passant par la constitution de glyphes en exécutions de glyphes et l'application d'effets. Pour plus d'informations sur l'accélération matérielle, consultez Couches de rendu graphiques.
Diagramme du pipeline de rendu de texte
En outre, un texte animé, par caractères ou par glyphes, tire pleinement parti de la fonction de matériel graphique activée par WPF. On obtient une animation de texte lisse.
Typographie riche
Le format de police OpenType est une extension du format de police TrueType®. Le format de police OpenType a été développé conjointement par Microsoft et Adobe ; il offre un large éventail de fonctionnalités typographiques avancées. L'objet Typography expose une grande partie des fonctionnalités avancées des polices OpenType, telles que les paraphes et styles de substitution. Le Windows SDK fournit un jeu d'exemples de polices OpenType conçues avec des fonctionnalités puissantes, telles que les polices Pericles et Pescadero. Pour plus d'informations, consultez Exemple de pack de polices OpenType.
La police Pericles OpenType contient des glyphes supplémentaires qui offrent des styles de substitution au jeu de glyphes standard. Le texte suivant affiche des glyphes de styles de substitution.
Texte utilisant des glyphes de styles de substitution OpenType
Les paraphes sont des glyphes décoratifs qui utilisent une ornementation élaborée souvent associée à la calligraphie. Le texte suivant affiche des glyphes standard et des glyphes de paraphe pour la police Pescadero.
Texte utilisant des glyphes de paraphe et des glyphes standard OpenType
Pour plus d'informations sur les fonctionnalités OpenType, consultez Fonctionnalités des polices OpenType.
Prise en charge de texte international améliorée
WPF offre une prise en charge de texte international améliorée en fournissant les fonctionnalités suivantes :
Interligne automatique dans tous les systèmes d'écriture, via des mesures adaptables.
Prise en charge générale du texte international. Pour plus d'informations, consultez Globalisation pour WPF.
Saut de ligne, césure et justification par langue.
Prise en charge de police améliorée
WPF offre une prise en charge de police améliorée en fournissant les fonctionnalités suivantes :
Unicode pour tout texte. La sélection et le comportement de la police ne requièrent plus de jeu de caractères ou de page de codes.
Comportement de police indépendant des paramètres globaux, tels que les paramètres régionaux du système.
Types FontWeight, FontStretch et FontStyle distincts pour définir un FontFamily. Cette fonctionnalité offre une souplesse plus importante que dans la programmation Win32, dans laquelle des combinaisons Boolean italique et gras sont utilisées pour définir une famille de polices.
Sens d'écriture (horizontal ou vertical) géré indépendamment du nom de police.
Police de liaison et police de substitution dans un fichier XML portable, à l'aide de la technologie de police composite. Les polices composites permettent de générer une gamme complète de polices multilingues. Les polices composites fournissent également un mécanisme qui évite d'afficher les glyphes manquants. Pour plus d'informations, consultez les notes dans la classe FontFamily.
Polices internationales générées à partir de polices composites, à l'aide d'un groupe de polices d'une seule langue. Cela permet de limiter les coûts de ressources lors du développement de polices pour plusieurs langues.
Polices composites incorporées dans un document, autorisant ainsi la portabilité du document. Pour plus d'informations, consultez les notes dans la classe FontFamily.
Nouvelles interfaces de programmation d'applications (API) textes
WPF fournit plusieurs APIs textes que les développeurs doivent utiliser lorsqu'ils incluent du texte dans leurs applications. Ces APIs sont groupées dans trois catégories :
Disposition et interface utilisateur. Les contrôles de texte courants pour l'graphical user interface (GUI).
Dessin de texte léger. Permet de dessiner du texte directement sur des objets.
Mise en forme du texte avancée. Permet d'implémenter un moteur de texte personnalisé.
Disposition et interface utilisateur
Au niveau de fonctionnalités le plus élevé, les APIs textes fournissent des contrôles d'user interface (UI) courants tels que Label, TextBlock et TextBox. Ces contrôles fournissent les éléments d'UI de base dans une application et proposent une méthode simple pour présenter et interagir avec le texte. Les contrôles tels que RichTextBox et PasswordBox permettent une gestion du texte plus avancée ou spécialisée. Les classes telles que TextRange, TextSelection et TextPointer permettent une manipulation utile du texte. Ces contrôles d'UI fournissent des propriétés telles que FontFamily, FontSize et FontStyle qui vous permettent de contrôler la police utilisée pour rendre le texte.
Utilisation d'effets bitmap, de transformations et d'effets de texte
WPF vous permet de créer des utilisations visuellement intéressantes de texte via des fonctionnalités d'utilisation telles que les effets bitmap, les transformations et les effets de texte. L'exemple suivant présente un type classique d'effet d'ombre portée appliqué au texte.
Texte avec ombre portée
L'exemple suivant présente un effet d'ombre portée et un bruit appliqués au texte.
Texte avec ombre portée et bruit
L'exemple suivant présente un effet de lumière externe appliqué au texte.
Texte avec effet de lumière externe
L'exemple suivant présente un effet flou appliqué au texte.
Texte avec effet flou
Dans l'exemple suivant, la deuxième ligne du texte est mise à l'échelle par 150 % le long de l'axe x et la troisième ligne du texte est mise à l'échelle par 150 % le long de l'axe y.
Texte avec ScaleTransform
L'exemple suivant présente le texte incliné le long de l'axe x.
Texte avec SkewTransform
Un objet TextEffect est un objet d'assistance qui vous permet de traiter le texte comme un ou plusieurs groupes de caractères dans une chaîne de texte. L'exemple suivant montre un caractère individuel qui fait l'objet d'une rotation. Chaque caractère fait indépendamment l'objet d'une rotation à intervalles d'une seconde.
Exemple d'animation d'un effet de texte rotatif
Utilisation de documents dynamiques
Outre les contrôles d'UI courants, WPF offre un contrôle de disposition pour la présentation de texte : l'élément FlowDocument. L'élément FlowDocument, conjointement à l'élément DocumentViewer, fournit un contrôle pour les grandes quantités de texte avec diverses spécifications de disposition. Les contrôles de disposition donnent accès à une typographie avancée via l'objet Typography et les propriétés de police d'autres contrôles d'UI.
L'exemple suivant présente le contenu de texte hébergé dans un FlowDocumentReader, offrant une prise en charge de la recherche, de la navigation, de la pagination et de la mise à l'échelle du contenu.
Texte hébergé dans un FlowDocumentReader
Pour plus d'informations, consultez Documents dans WPF.
Dessin de texte léger
Vous pouvez dessiner du texte directement sur des objets WPF en utilisant la méthode DrawText de l'objet DrawingContext. Pour utiliser cette méthode, vous créez un objet FormattedText. Cet objet vous permet de dessiner un texte multiligne dans lequel chaque caractère du texte peut être mis en forme individuellement. Les fonctionnalités de l'objet FormattedText contiennent la plupart des fonctionnalités des indicateurs DrawText dans l'API Win32. De plus, l'objet FormattedText contient des fonctionnalités telles que la prise en charge des points de suspension qui s'affichent lorsque le texte dépasse les limites. L'exemple suivant présente un texte auquel plusieurs formats sont appliqués, notamment un dégradé linéaire sur les deuxième et troisième mots.
Texte affiché à l'aide d'un objet FormattedText
Vous pouvez convertir le texte mis en forme en objets Geometry, ce qui vous permet de créer d'autres types de texte visuellement intéressant. Par exemple, vous pouvez créer un objet Geometry sur la base du contour d'une chaîne de texte.
Contour du texte à l'aide d'un pinceau à dégradé linéaire
Les exemples suivants illustrent plusieurs façons de créer des effets visuels intéressants en modifiant le trait, le remplissage et la surbrillance du texte converti.
Exemple de définition du trait et du remplissage de différentes couleurs
Exemple de pinceau image appliqué au trait
Exemple de pinceau image appliqué au trait et surbrillance
Pour plus d'informations sur l'objet FormattedText, consultez Dessin du texte mis en forme
Mise en forme du texte avancée
Au niveau le plus avancé des APIs textes, WPF vous offre la possibilité de créer une disposition de texte personnalisée en utilisant l'objet TextFormatter et d'autres types dans l'espace de noms System.Windows.Media.TextFormatting. TextFormatter et les classes associées vous permettent d'implémenter la disposition de texte personnalisée qui prend en charge votre propre définition des formats de caractère, styles de paragraphe, règles du saut de ligne et d'autres fonctionnalités de disposition pour le texte international. Rares sont les cas dans lesquels vous souhaiterez substituer l'implémentation par défaut de la prise en charge de la disposition du texte WPF. Toutefois, si vous créez une application ou un contrôle d'édition de texte, vous aurez peut-être besoin d'une implémentation différente de l'implémentation WPF par défaut.
Contrairement à une API texte traditionnelle, TextFormatter interagit avec un client de disposition du texte via un jeu de méthodes de rappel. Cela suppose que le client fournisse ces méthodes dans une implémentation de la classe TextSource. Le diagramme suivant illustre l'interaction de la disposition du texte entre l'application cliente et TextFormatter.
Interaction entre l'application et TextFormatter
Pour plus d'informations sur la création de la disposition de texte personnalisée, consultez Mise en forme de texte avancée.
Voir aussi
Référence
Concepts
Fonctionnalités des polices OpenType
Mise en forme de texte avancée
Optimisation des performances : texte