RichTextBox в In Windows Forms имеет RTF-свойство, которое дает вам настоящий RTF-текст. Для WPF это намного сложнее. Я много гуглил, и inte rnet сказал, что я должен сделать что-то вроде этого:
public class RichTextEditTextBox : System.Windows.Controls.RichTextBox
{
public RichTextEditTextBox()
{
DefaultStyleKey = typeof(System.Windows.Controls.RichTextBox);
TextChanged += RichTextEditTextBox_TextChanged;
}
private void RichTextEditTextBox_TextChanged(object sender, System.Windows.Controls.TextChangedEventArgs e)
{
using (MemoryStream ms = new MemoryStream())
{
var range = new TextRange(Document.ContentStart, Document.ContentEnd);
range.Save(ms, DataFormats.Rtf);
ms.Seek(0, SeekOrigin.Begin);
using (StreamReader sr = new StreamReader(ms))
{
RTFText = sr.ReadToEnd();
}
}
}
public string RTFText
{
get { return (string)GetValue(RTFTextProperty); }
set { SetValue(RTFTextProperty, value); }
}
public static readonly DependencyProperty RTFTextProperty =
DependencyProperty.Register("RTFText", typeof(string), typeof(RichTextEditTextBox), new PropertyMetadata(null));
}
Это выглядит очень некрасиво и неуместно. Инте rnet постам уже несколько лет. Это действительно современное состояние?