Frage

Wie erhalte ich den Text in RTF eines RichTextBox? Ich versuche, so zu erhalten, aber die Eigenschaft existiert nicht.

RichTextBox rtb = new RichTextBox();
string s = rtb.Rtf;
War es hilfreich?

Lösung

Um die tatsächliche XAML durch den Benutzer innerhalb des RichTextBox erstellt zu bekommen:

   TextRange tr = new TextRange(myRichTextBox.Document.ContentStart,
                                myRichTextBox.Document.ContentEnd);
   MemoryStream ms = new MemoryStream();
   tr.Save(ms, DataFormats.Xaml);
   string xamlText = ASCIIEncoding.Default.GetString(ms.ToArray());

EDIT: Ich habe keinen Code vor mir zu testen, aber eine Instanz des TextRange Typs hat eine Save (zu streamen) Methode, die einen DataFormats Parameter annimmt, die DataFormats.Rtf werden können

Andere Tipps

Es gibt 2 RichTextBox Klassen, eine von dem WinForms Rahmen und ein von dem WPF-Framework:

System.Windows.Controls.RichTextBox wpfBox;
System.Windows.Forms.RichTextBox winformsBox;

Nur die WinForms RichTextBox rtf Eigenschaft hat, das andere hat ein Document-Eigenschaft, die eine Flowdocument enthält.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top