Получить RTF-текст (свойство привязки) из RichTextBox - PullRequest
0 голосов
/ 11 апреля 2020

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 постам уже несколько лет. Это действительно современное состояние?

...