122 votes

RichTextBox (WPF) n'a pas de propriété de type chaîne "Text".

J'essaie de définir/obtenir le texte de ma RichTextBox, mais Text ne figure pas dans la liste de ses propriétés lorsque je veux obtenir test.Text...

J'utilise le code derrière en C# (.net framework 3.5 SP1).

RichTextBox test = new RichTextBox();

ne peut pas avoir test.Text(?)

Savez-vous comment cela peut être possible ?

13voto

user1143839 Points 71
string GetString(RichTextBox rtb)
{
    var textRange = new TextRange(rtb.Document.ContentStart, rtb.Document.ContentEnd);
    return textRange.Text;
}

8voto

Curtis Points 1165

Et si vous faisiez simplement ce qui suit :

_richTextBox.SelectAll();
string myText = _richTextBox.Selection.Text;

8voto

Vincenzo Costa Points 246
RichTextBox rtf = new RichTextBox();
System.IO.MemoryStream stream = new System.IO.MemoryStream(ASCIIEncoding.Default.GetBytes(yourText));

rtf.Selection.Load(stream, DataFormats.Rtf);

OU

rtf.Selection.Text = yourText;

4voto

GiangLP Points 11

"Extended WPF Toolkit" fournit maintenant une richtextbox avec la propriété Text.

Vous pouvez obtenir ou définir le texte dans différents formats (XAML, RTF et texte brut).

Voici le lien : Boîte à lettres RichText de la boîte à outils WPF étendue

0voto

Hub Points 1

A ma grande surprise, le RichtTextBox ne renvoie pas la même valeur que celle qui a été définie !

Réglage d'une chaîne de caractères Avec :

SelectAll()
RichTextBox.Selection.Text = "AA"

Et revenir avec :

SelectAll()
Return RichTextBox.Selection.Text

Retour "AA" avec retour de chariot

Utilisant également :

Dim Selection = New TextRange(rtbRichTextBox.Document.ContentStart, rtbRichTextBox.Document.ContentEnd)
Selection.Text = "AA"

Et revenir avec :

Dim Selection = New TextRange(rtbRichTextBox.Document.ContentStart, rtbRichTextBox.Document.ContentEnd)
Return Selection.Text

Fait de même : "AA" avec carriage-return

El RichTextBox ne renvoie pas la valeur telle qu'elle a été définie Comportement très incorrect ! !

Est résolu (contourné) ce par :

Dim Selection = New TextRange(rtbRichTextBox.Document.ContentStart, rtbRichTextBox.Document.ContentEnd.GetPositionAtOffset(-1))
Return Selection.Text

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X