2010-10-08 24 views
4

Existe-t-il un moyen d'appliquer une décoration de texte soulignée à un seul caractère dans un TextBlock (ou un nombre inférieur au bloc complet)?Existe-t-il un moyen de souligner un caractère dans un TextBlock WPF?

je un texte que je veux que la sortie « ce Worf est mal orthographié » et ont le f en worf souligné.

Je sais que vous pouvez faire:

TextBlock47.TextDecorations = TextDecorations.Underline; 

, mais je ne veux pas tout le bloc souligné.

A défaut, y a-t-il un autre contrôle que je peux utiliser autre que TextBlock qui donne cette capacité? J'ai regardé du texte riche, mais cela semble être un travail énorme pour ce qui est un effet simple. Si ce est le seul moyen, comment puis-je générer du texte d'un format spécifique (10pt, Courier New, un caractère souligné) dans le code C#?

Répondre

14

Vous pouvez utiliser Underline dans un TextBlock:

<TextBlock Name="textBlock47"> 
    this wor<Underline>f</Underline> is misspelt 
</TextBlock> 

ou

textBlock47.Inlines.Add(new Run("this wor")); 
textBlock47.Inlines.Add(new Underline(new Run("f"))); 
textBlock47.Inlines.Add(new Run(" is misspelt")); 
+0

Cela fonctionne très bien. Il semble que le fait de ne pas afficher le soulignement soit sous un caractère espace sans caractère non-espace, mais je l'ai résolu en ayant toujours du texte à la fin: pragmatisme sur pureté :-) Merci beaucoup. – paxdiablo

+1

+10. C'était vraiment utile. –