Partager via


Typographie dans Windows Presentation Foundation

Mise à jour : novembre 2007

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
  • Ressources
  • Rubriques connexes

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

Le texte dans WPF est restitué à l'aide de Microsoft ClearType, qui améliore la clarté et lisibilité de texte. ClearType est une technologie logicielle développée par Microsoft qui améliore la lisibilité du texte sur les affichages à cristaux liquides existants, tels que les écrans portables, les écrans Pocket PC et les moniteurs à écran plat. ClearType utilise le rendu d'une précision inférieure au pixel qui permet un affichage du texte plus fidèle à sa forme réelle via l'alignement des caractères sur la partie fractionnaire 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

Texte avec anticrénelage ClearType dans la direction y

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.

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 Kit de développement logiciel (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 styles de substitution OpenType

Texte utilisant des glyphes de style alternatifs 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

Texte utilisant des glyphes standard et ornés 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 Windows Presentation Foundation.

  • 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 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 (GUI, Graphical User Interface).

  • 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 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.

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

Ombre du texte avec adoucissement = 0;25

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

Ombre du texte avec bruit

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

Texte avec effet de lumière externe

Ombre du texte utilisant OuterGlowBitmapEffect

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

Texte avec effet flou

Ombre du texte utilisant BlurBitmapEffect

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

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

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

Texte avec SkewTransform

Texte incliné à l'aide de 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 issu du TextEffect, exemple affiche un caractère individuel faisant 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

Capture d'écran : effet de rotation du texte

Utilisation de documents dynamiques

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 relatives à 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.

Texte hébergé dans un FlowDocumentReader

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

Pour plus d'informations, consultez Documents dans Windows Presentation Foundation.

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

Texte affiché à l'aide de l'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 basé sur le contour d'une chaîne de texte.

Contour du texte à l'aide d'un pinceau à dégradé linéaire

Contour du texte utilisant 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 surbrillance du texte converti.

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

Texte avec différentes couleurs de trait et de remplissage

Exemple de pinceau image appliqué au trait

Texte avec pinceau image appliqué au trait

Exemple de pinceau image appliqué au trait et surbrillance

Texte avec pinceau image appliqué au trait

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 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, 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

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

Ressources

Pour découvrir les fonctionnalités OpenType, il peut être intéressant d'utiliser XAMLPad pour créer un balisage expérimentant l'utilisation de différentes propriétés typographiques. Pour plus d'informations, consultez XAMLPad.

Test des polices OpenType avec XAMLPad

XamlPad affichant les fonctionnalités OpenType

Voir aussi

Concepts

Vue d'ensemble de ClearType

Fonctionnalités des polices OpenType

Dessin du texte mis en forme

Mise en forme de texte avancée

Optimisation des performances : texte

XAMLPad

Référence

FormattedText

TextFormatter

Autres ressources

Typographie Microsoft