Comment puis-je emballer du texte dans une étiquette à l’aide de WPF?

J’ai un TextBox et un Label. Après avoir cliqué sur un bouton, j’exécute le code suivant:

  label1.Content = textbox1.Text; 

Ma question est la suivante: comment puis-je activer le retour à la ligne de l’étiquette? Il y a peut-être trop de texte à afficher sur une ligne, et je veux qu’il soit automatiquement renvoyé à plusieurs lignes si tel est le cas.

Le contrôle Label ne prend pas directement en charge le retour à la ligne dans WPF. Vous devriez utiliser un TextBlock place. (Bien sûr, vous pouvez placer le TextBlock dans un contrôle Label si vous le souhaitez.)

Exemple de code:

  Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec adipiscing nulla quis libero egestas lobortis. Duis blandit imperdiet ornare. Nulla ac arcu ut purus placerat congue. Integer pretium fermentum gravida.  

Souvent, vous ne pouvez pas remplacer une Label par un TextBlock que vous souhaitez utiliser avec la propriété Target (qui définit le contrôle ciblé lors de l’utilisation du clavier, par exemple ALT + C dans l’exemple de code ci-dessous). TextBlock .

Toutefois, une Label utilise un TextBlock pour restituer du texte (si une chaîne est placée dans la propriété Content , ce qui est généralement le cas); par conséquent, vous pouvez append un style pour TextBlock à l’intérieur de l’ Label comme ceci:

   

De cette façon, vous gardez les fonctionnalités d’un Label tout en pouvant envelopper le texte.

J’ai utilisé le code suivant.

   

Vous pouvez placer un TextBlock dans l’étiquette:

  

Pour envelopper le texte dans le contrôle d’étiquette, modifiez le modèle d’étiquette comme suit:

  

Au lieu d’utiliser une classe Label, je vous recommande d’utiliser un TextBlock . Cela vous permet de définir le TextWrapping de manière appropriée.

Vous pouvez toujours faire:

  label1.Content = new TextBlock() { Text = textBox1.Text, TextWrapping = TextWrapping.Wrap }; 

Cependant, si tout ce “label” est pour afficher du texte, utilisez plutôt un TextBlock .

Nous devons mettre en place une sorte de contrôle capable d’envelopper un texte tel que textblock / textbox

   

essayez d’utiliser ceci

 lblresult.Content = lblresult.Content + "prime are :" + j + "\n"; 
   

Je l’ai utilisé pour récupérer des données de la firebase database MySql:

 AccessText a = new AccessText(); a.Text=reader[1].ToSsortingng(); // MySql reader a.Width = 70; a.TextWrapping = TextWrapping.WrapWithOverflow; labels[i].Content = a;