Partager via


Typographie dans WPF

Cette rubrique présente les principales fonctionnalités typographiques de WPF. Ces fonctionnalités incluent une qualité et des performances améliorées du rendu de texte, la prise en charge de la typographie OpenType, le texte international amélioré, la prise en charge améliorée de la police et de nouvelles interfaces de programmation d’application de texte (API).

Amélioration de la qualité et des performances du texte

Le texte dans WPF est rendu à l’aide de Microsoft ClearType, ce qui améliore la clarté et la lisibilité du texte. ClearType est une technologie logicielle développée par Microsoft qui améliore la lisibilité du texte sur les disques LCD existants (Liquid Crystal Displays), tels que les écrans portables, les écrans de pc de poche et les moniteurs de panneau plat. ClearType utilise le rendu de sous-pixels qui permet au texte d’être affiché avec une plus grande fidélité à sa forme réelle en alignant les caractères sur une partie fractionnaire d’un pixel. La résolution supplémentaire augmente la netteté des minuscules détails dans l’affichage de texte, ce qui facilite la lecture sur de longues durées. Une autre amélioration de ClearType dans WPF est l'anticrénelage dans la direction y, qui lisse les parties supérieures et inférieures des courbes peu profondes dans les caractères typographiques. Pour plus d’informations sur les fonctionnalités ClearType, consultez Vue d’ensemble de ClearType.

Texte avec anticrénelage ClearType dans la direction y
Texte avec anticrénelage ClearType dans la direction y

L’intégralité du pipeline de rendu de texte peut être accélérée par le matériel dans WPF, à condition que votre machine réponde au niveau minimal de matériel requis. Le rendu qui ne peut pas être effectué à l’aide du matériel revient au rendu logiciel. L’accélération matérielle affecte toutes les phases du pipeline de rendu de texte, du stockage des glyphes individuels, de la composition des glyphes dans des courses de glyphes, de l'application d’effets, à l’application de l’algorithme de fusion ClearType à la sortie finale affichée. Pour plus d’informations sur l’accélération matérielle, consultez Couches de rendu graphiques.

diagramme du pipeline de rendu de texte

De plus, le texte animé, que ce soit par caractère ou glyphe, tire pleinement parti de la fonctionnalité matérielle graphique activée par WPF. Cela entraîne 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, et fournit un riche assortiment de fonctionnalités typographiques avancées. L’objet Typography expose de nombreuses fonctionnalités avancées des polices OpenType, telles que les variantes stylistiques et les ornements. Le Kit de développement logiciel (SDK) Windows fournit un ensemble d’exemples de polices OpenType conçues avec des fonctionnalités enrichies, telles que les polices Pericles et Cspadero. Pour plus d’informations, consultez exemple de pack de police OpenType.

La police Pericles OpenType contient des glyphes supplémentaires qui fournissent des alternatives stylistiques à l’ensemble standard de glyphes. Le texte suivant affiche des glyphes de remplacement stylistiques.

Texte utilisant des glyphes de style alternatifs OpenType

Les swashes sont des glyphes décoratifs qui utilisent une ornementation élaborée souvent associée à la calligraphie. Le texte suivant présente des glyphes standard et des glyphes à lettres ornées avec la police Pescadero.

Texte utilisant le standard OpenType et les glyphes ornementaux

Pour plus d’informations sur les fonctionnalités OpenType, voir OpenType Font Features.

Soutien international du texte amélioré

WPF fournit une prise en charge améliorée du texte international en fournissant les fonctionnalités suivantes :

  • Interligne automatique dans tous les systèmes d’écriture, à l’aide de mesures adaptatives.

  • Prise en charge générale du texte international. Pour plus d’informations, consultez Globalization for WPF.

  • Saut de ligne, coupure de mots et justification par langue.

Prise en charge améliorée des polices

WPF fournit une prise en charge améliorée de la police en fournissant les fonctionnalités suivantes :

  • Unicode pour tout le texte. Le comportement de police et la sélection ne nécessitent plus d’ensemble de caractères ni de page de codes.

  • Comportement de police indépendant des paramètres globaux, tels que les paramètres régionaux du système.

  • Séparez FontWeight, FontStretchet FontStyle types pour définir un FontFamily. Cela offre une plus grande flexibilité que dans la programmation Win32, dans laquelle les combinaisons booléennes en italique et en gras sont utilisées pour définir une famille de polices.

  • Direction d’écriture (horizontale ou verticale) gérée indépendamment du nom de police.

  • Liaison des polices et remplacement de police dans un fichier XML portable, à l’aide de la technologie des polices composites. Les polices composites permettent la construction de polices multilingues de gamme complète. Les polices composites fournissent également un mécanisme qui évite d’afficher des glyphes manquants. Pour plus d’informations, consultez les remarques de la classe FontFamily.

  • Polices internationales créées à partir de polices composites, à l’aide d’un groupe de polices mono language. Cela permet d’économiser sur 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 remarques de la classe FontFamily.

Nouvelles interfaces de programmation d’applications texte (API)

WPF fournit plusieurs API de texte pour permettre aux développeurs d’utiliser lors de l’inclusion de texte dans leurs applications. Ces API sont regroupées en trois catégories :

  • Disposition et interface utilisateur. Contrôles de texte courants pour l’interface utilisateur graphique (GUI).

  • Dessin de texte léger. Vous permet de dessiner du texte directement sur des objets.

  • mise en forme de texte avancée. Vous permet d’implémenter un moteur de texte personnalisé.

Disposition et interface utilisateur

Au niveau le plus élevé des fonctionnalités, les API de texte fournissent des contrôles d’interface utilisateur courants tels que Label, TextBlocket TextBox. Ces contrôles fournissent les éléments d’interface utilisateur de base au sein d’une application et offrent un moyen simple de présenter et d’interagir avec du texte. Les contrôles tels que RichTextBox et PasswordBox permettent une gestion de texte plus avancée ou plus spécialisée. Et les classes telles que TextRange, TextSelectionet TextPointer permettent une manipulation de texte utile. Ces contrôles d’interface utilisateur fournissent des propriétés telles que FontFamily, FontSizeet FontStyle, qui vous permettent de contrôler la police utilisée pour afficher le texte.

Utilisation des effets bitmap, des transformations et des effets de texte

WPF vous permet de créer des utilisations visuellement intéressantes de texte en utilisant des fonctionnalités telles que les effets bitmap, les transformations et les effets de texte. L’exemple suivant montre un type typique d’un effet d’ombre déroulante appliqué au texte.

Ombre du texte avec flou = 0.25

L’exemple suivant montre un effet d’ombre portée et un effet de bruit appliqués au texte.

Ombre de texte Ombre du texte avec bruit

L’exemple suivant montre un effet de lumière externe appliqué au texte.

Ombre du texte utilisant OuterGlowBitmapEffect

L’exemple suivant montre un effet flou appliqué au texte.

Ombre de texte à l’aide d’un BlurBitmapEffect

L’exemple suivant montre la deuxième ligne de texte mise à l’échelle de 150% le long de l’axe x et la troisième ligne de texte mise à l’échelle de 150% le long de l’axe y.

Texte mis à l'échelle à l'aide de ScaleTransform Transfert d'échelle

L’exemple suivant montre l’asymétrie du texte le long de l’axe x.

Texte incliné à l'aide de SkewTransform

Un objet TextEffect est un objet d’assistance qui vous permet de traiter du 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 est pivoté indépendamment à intervalles de 1 seconde.

Capture d’écran de l’effet de texte tournant

Utilisation de documents de flux

Outre les contrôles d’interface utilisateur courants, WPF offre un contrôle de disposition pour la présentation de texte , l’élément FlowDocument. L’élément FlowDocument, conjointement avec l’élément DocumentViewer, fournit un contrôle pour de grandes quantités de texte avec des exigences de disposition variables. Les contrôles de disposition permettent d’accéder à une typographie avancée via l’objet Typography et les propriétés liées à la police d’autres contrôles d’interface utilisateur.

L’exemple suivant montre le contenu texte hébergé dans un FlowDocumentReader, qui fournit la prise en charge de la recherche, de la navigation, de la pagination et de la mise à l’échelle du contenu.

Capture d’écran montrant les polices OpenType.

Pour plus d’informations, consultez Documents dans WPF.

Dessin de texte léger

Vous pouvez dessiner du texte directement sur des objets WPF à l’aide de 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 du texte à plusieurs lignes, dans lequel chaque caractère du texte peut être mis en forme individuellement. La fonctionnalité de l’objet FormattedText contient une grande partie des fonctionnalités des indicateurs DrawText dans l’API Windows. De plus, l’objet FormattedText contient des fonctionnalités telles que la prise en charge des points de suspension qui s’affichent quand le texte dépasse les limites. L’exemple suivant montre le texte qui a plusieurs formats appliqués, y compris un dégradé linéaire sur les deuxième et troisième mots.

Texte affiché à l’aide de l’objet FormattedText

Vous pouvez convertir du texte mis en forme en objets Geometry, ce qui vous permet de créer d’autres types de texte visuellement intéressants. Par exemple, vous pouvez créer un objet Geometry en fonction du contour d’une chaîne de texte.

contour de texte à l’aide d’un pinceau de 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 mise en surbrillance du texte converti.

Texte avec différentes couleurs de trait et de remplissage

Texte avec pinceau image appliqué au trait

Texte avec pinceau image appliqué au trait et surlignage

Pour plus d’informations sur l’objet FormattedText, consultez Dessiner du texte mis en forme.

Mise en forme de texte avancée

Au niveau le plus avancé des API de texte, WPF vous offre la possibilité de créer une disposition de texte personnalisée à l’aide de l’objet TextFormatter et d’autres types dans l’espace de noms System.Windows.Media.TextFormatting. Les classes TextFormatter et associées vous permettent d’implémenter une disposition de texte personnalisée qui prend en charge votre propre définition de formats de caractères, de styles de paragraphe, de règles de rupture de ligne et d’autres fonctionnalités de disposition pour le texte international. Il existe très peu de cas dans lesquels vous souhaiteriez remplacer l’implémentation par défaut de la prise en charge de la mise en page de texte WPF. Toutefois, si vous créez un contrôle d’édition de texte ou une application, vous pouvez nécessiter une implémentation différente de l’implémentation WPF par défaut.

Contrairement à une API de texte traditionnelle, la TextFormatter interagit avec un client de disposition de texte via un ensemble de méthodes de rappel. Le client doit fournir ces méthodes dans une implémentation de la classe TextSource. Le diagramme suivant illustre l’interaction de disposition de texte entre l’application cliente et TextFormatter.

Diagramme du client de disposition de texte et TextFormatter

Pour plus d’informations sur la création d’une disposition de texte personnalisée, consultez mise en forme de texte avancée.

Voir aussi