2010-12-14 52 views
3

Quelle est la manière la plus simple de gérer l'espacement des lettres, le crénage ou le suivi dans Silverlight?Silverlight letter-spacing

J'ai actuellement de gros titres en Arial qui ont juste trop d'espace entre les lettres.

grâce

Répondre

0

Je ne pense pas qu'il est pris en charge par le moteur d'exécution à ce moment. Vous pouvez exporter le texte sous forme de chemin et l'utiliser.

+0

Merci. Je pense que je vais écrire un comportement pour textblock qui divise tous les mots, avec une propriété pour assigner le paramètre d'espacement. – keyle

2

ne savent pas que ce soit la meilleure solution, mais il fonctionne très bien pour moi:

SomeElement.Children.Add(LetterSpacing("Test", -3)); 

...

private Canvas LetterSpacing(string String, double Space) 
    { 
     Canvas kpr = new Canvas(); 
     char[] lters = String.ToCharArray(); 
     Label[] lbls = new Label[lters.Length]; 

     for (int i = 0; i < lters.Length; i++) 
     { 
      Label tmpLbl = new Label(); 
      lbls[i] = tmpLbl; 
      kpr.Children.Add(lbls[i]); 
      lbls[i].Content = lters[i]; 
      lbls[i].FontSize = 30; 
      lbls[i].FontFamily = new FontFamily("Verdana"); 
     } 

     Dispatcher.BeginInvoke(
      () => 
      { 
       double leftPos = 0; 
       for (int j = 0; j < lbls.Length; j++) 
       { 
        Canvas.SetLeft(lbls[j], 0 + leftPos); 
        leftPos += (lbls[j].ActualWidth - (Space * -1)); 
       } 
      }); 

     return kpr; 
    }