вы просто размещаете метку-розетку маршрутизатора
держите метку-розетку маршрутизатора там, где вы хотите отобразить маршрутизируемый компонент
вот раздвоенный репо stackblitz Forked Stackblitz [ 113]
Вы не должны сохранять FlowDocument напрямую, поскольку его следует рассматривать как представление документа во время выполнения, а не фактическое содержимое документа. Вместо этого используйте класс TextRange для сохранения и загрузки в различные форматы, включая Rtf .
Быстрый пример того, как создать выделение и сохранить в потоке:
var content = new TextRange(doc.ContentStart, doc.ContentEnd);
if (content.CanSave(DataFormats.Rtf))
{
using (var stream = new MemoryStream())
{
content.Save(stream, DataFormats.Rtf);
}
}
Чтобы загрузка содержимого в выборку будет аналогичной:
var content = new TextRange(doc.ContentStart, doc.ContentEnd);
if (content.CanLoad(DataFormats.Rtf))
{
content.Load(stream, DataFormats.Rtf);
}
На меня это действует как чары. Без проблем отображает результат в поле RTF.
public static string getDocumentAsXaml(IDocumentPaginatorSource flowDocument)
{
return XamlWriter.Save(flowDocument);
}