Set RTF text into WPF RichTextBox control
Create an Extension method
public static void SetRtf(this RichTextBox rtb, string document)
{
var documentBytes = Encoding.UTF8.GetBytes(document);
using (var reader = new MemoryStream(documentBytes))
{
reader.Position = 0;
rtb.SelectAll();
rtb.Selection.Load(reader, DataFormats.Rtf);
}
}
Then you can do WinForm-esque style
richTextBox1.SetRtf(rtf);
Do you really have to start with a string?
One method to load RTF is this:
rtfBox.Selection.Load(myStream, DataFormats.Rtf);
You probably should call SelectAll() before that if you want to replace existing text.
So, worst case, you'll have to write your string to a MemoryStream and then feed that stream to the Load() method. Don't forget to Position=0 in between.
But I'm waiting to see somebody to come up with something more elegant.