2010-01-08 4 views
2

J'utilise System.Windows.Media.FormattedText pour effectuer un rendu de bas niveau (en particulier, essayer de rendre les équations mathématiques d'une manière agréable d'un point de vue typographique). Pour cela, des métriques précises sur les blocs de texte que j'utilise sont critiques.La propriété FormattedText Width ne tient pas compte des espaces de fin

Je crée plusieurs FormattedText objets et d'utiliser ceux-ci au plus bas niveau de rendu. Le problème est que si l'un d'entre eux contiennent des espaces de fuite, que l'espace ne sont pas prises en compte lors du calcul de la propriété FormattedText.Width. Par exemple, si j'écris:

double w1 = new FormattedText ("Hello", ...).Width; 
double w2 = new FormattedText ("Hello ", ...).Width; 

w1 et w2 s'avèrent identiques. espaces principaux sont mesurés correctement. Comment puis-je forcer FormattedText pour mesurer ces espaces de fin ainsi?

Répondre

2

Changement d'utiliser la propriété Width à l'utilisation de la propriété WidthIncludingTrailingWhitespace.

double w1 = new FormattedText ("Hello", ...).WidthIncludingTrailingWhitespace; 
double w2 = new FormattedText ("Hello ", ...).WidthIncludingTrailingWhitespace; 

Avec ce code, vous devriez voir deux valeurs de largeur différentes.

+0

qui fonctionne. Merci! – Tarydon

Questions connexes