Formatage du texte dans un TextBlock

Comment puis-je mettre en forme un texte à l’intérieur d’un contrôle TextBlock dans mon application WPF?

ex: J’aimerais avoir certains mots en gras, d’autres en italique et d’autres en différentes couleurs, comme cet exemple:

entrer la description de l'image ici

La raison de ma question est ce problème réel:

 lblcolorfrom.Content = "Colour From: " + colourChange.ElementAt(3).Value.ToUpper(); 

Je voudrais que la deuxième partie de la chaîne soit en gras, et je sais que je pourrais utiliser deux contrôles (Labels, TextBlocks, etc.), mais je préfère ne pas le faire, en raison du grand nombre de contrôles déjà utilisés.

Vous devez utiliser Inlines :

     

Avec reliure:

     

Vous pouvez également lier les autres propriétés:

     

Vous pouvez vous lier par le biais de convertisseurs si vous avez des caractères gras comme un booléen (par exemple).

Vous pouvez le faire en XAML assez facilement:

  Hello my faithful computer.You rock!  

Découvrez cet exemple de Charles Petzolds Bool Application = Code + marquage

 //---------------------------------------------- // FormatTheText.cs (c) 2006 by Charles Petzold //---------------------------------------------- using System; using System.Windows; using System.Windows.Controls; using System.Windows.Input; using System.Windows.Media; using System.Windows.Documents; namespace Petzold.FormatTheText { class FormatTheText : Window { [STAThread] public static void Main() { Application app = new Application(); app.Run(new FormatTheText()); } public FormatTheText() { Title = "Format the Text"; TextBlock txt = new TextBlock(); txt.FontSize = 32; // 24 points txt.Inlines.Add("This is some "); txt.Inlines.Add(new Italic(new Run("italic"))); txt.Inlines.Add(" text, and this is some "); txt.Inlines.Add(new Bold(new Run("bold"))); txt.Inlines.Add(" text, and let's cap it off with some "); txt.Inlines.Add(new Bold(new Italic (new Run("bold italic")))); txt.Inlines.Add(" text."); txt.TextWrapping = TextWrapping.Wrap; Content = txt; } } } 

Il existe différents éléments Inline qui peuvent vous aider, pour les options de formatage les plus simples que vous pouvez utiliser Bold , Italic et Underline :

  Sample text with bold, italic and underlined words.  

entrer la description de l'image ici

Je pense que cela vaut la peine de noter que ces éléments ne sont en fait que des raccourcis pour les éléments Span avec diverses propriétés définies (par exemple: pour Bold , la propriété FontWeight est définie sur FontWeights.Bold ).

Cela nous amène à notre prochaine option: l’élément Span susmentionné.

Vous pouvez obtenir les mêmes effets avec cet élément que ci-dessus, mais vous avez encore plus de possibilités. vous pouvez définir (entre autres) les propriétés Foreground ou Background :

  Sample text with bold, italic and underlined words. Coloring is also possible.  

entrer la description de l'image ici

L’élément Span peut également contenir d’autres éléments comme celui-ci:

  Italic text with some coloring.  

entrer la description de l'image ici

Il y a un autre élément, assez similaire à Span , appelé Run . Le Run ne peut pas contenir d’autres éléments en ligne pendant que Span peut le faire, mais vous pouvez facilement lier une variable à la propriété Text Run :

  Username:   

entrer la description de l'image ici

En outre, vous pouvez effectuer le formatage complet à partir de code-behind si vous préférez:

 TextBlock tb = new TextBlock(); tb.Inlines.Add("Sample text with "); tb.Inlines.Add(new Run("bold") { FontWeight = FontWeights.Bold }); tb.Inlines.Add(", "); tb.Inlines.Add(new Run("italic ") { FontStyle = FontStyles.Italic }); tb.Inlines.Add("and "); tb.Inlines.Add(new Run("underlined") { TextDecorations = TextDecorations.Underline }); tb.Inlines.Add("words."); 

un bon site, avec de bonnes explications:

http://www.wpf-tutorial.com/basic-controls/the-textblock-control-inline-formatting/

Ici, l’auteur vous donne de bons exemples de ce que vous recherchez! Overal le site est idéal pour le matériel de recherche et il couvre un grand nombre d’options que vous avez dans WPF

modifier

Il existe différentes méthodes pour formater le texte. pour un formatage de base (le plus simple à mon avis):

   TextBlock with bold, italic and underlined text.  

L’exemple 1 montre le formatage de base avec Gras Itallic et le texte souligné.

Vous trouverez ci-dessous la méthode SPAN, avec laquelle vous pouvez sélectionner le texte suivant:

   This is a TextBlock with several Span elements,  using a variety of styles .  

L’exemple 2 montre la fonction de scope et les différentes possibilités avec celle-ci.

Pour une explication détaillée, consultez le site!

Exemples