Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez aussi afficher la version anglaise dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte.
Traduction
Anglais

Typographie dans WPF

 

Date de publication : juin 2016

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.

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. Cette résolution accrue 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 ClearType dans la direction y

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

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.

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 SDK Windows 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 style alternatifs OpenType

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 standard et ornés OpenType

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.

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.

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.

WPF fournit plusieurs API textes que les développeurs doivent utiliser lorsqu'ils incluent du texte dans leurs applications. Ces API sont groupées dans trois catégories :

  • Disposition et interface utilisateur. Les contrôles de texte courants pour l'interface graphique utilisateur (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é.

Au niveau de fonctionnalités le plus élevé, les API textes fournissent des contrôles d'interface utilisateur (UI) courants tels que Label, TextBlock et TextBox. Ces contrôles fournissent les éléments d'Interface utilisateur 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'Interface utilisateur 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.

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.

Ombre du texte avec adoucissement = 0,25

Texte avec ombre portée

L'exemple suivant présente un effet d'ombre portée et un bruit appliqués au texte.

Ombre du texte avec bruit

Texte avec ombre portée et bruit

L'exemple suivant présente un effet de lumière externe appliqué au texte.

Ombre du texte utilisant OuterGlowBitmapEffect

Texte avec effet de lumière externe

L'exemple suivant présente un effet flou appliqué au texte.

Ombre du texte utilisant BlurBitmapEffect

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 mis à l'échelle à l'aide de ScaleTransform

Texte avec ScaleTransform

L'exemple suivant présente le texte incliné le long de l'axe x.

Texte incliné à l'aide de SkewTransform

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.

Capture d'écran : effet de rotation du texte

Exemple d'animation d'un effet de texte rotatif

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 à 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'Interface utilisateur.

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.

Exemple de capture d'écran : utilisation des polices OpenType

Texte hébergé dans un FlowDocumentReader

Pour plus d'informations, consultez Documents dans WPF.

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 de l'objet FormattedText

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 présentant un intérêt visuel. Par exemple, vous pouvez créer un objet Geometry basé sur le contour d'une chaîne de texte.

Contour du texte utilisant un pinceau de dégradé linéaire

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.

Texte avec différentes couleurs de trait et de remplissage

Exemple de définition du trait et du remplissage de différentes couleurs

Texte avec pinceau image appliqué au trait

Exemple de pinceau image appliqué au trait

Texte avec 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

Au niveau le plus avancé des API 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, le TextFormatter interagit avec le client de disposition de texte par l'intermédiaire d'un ensemble 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 montre l'interaction de la disposition du texte entre l'application cliente et TextFormatter.

Diagramme du client de disposition du texte 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.

Afficher: