2016-04-14 2 views
0

Мои WPF приложение отображает много текста фрагментов в разных местах на большом полотне (своего рода пост это к сведению приложение)Как загрузить объект WPF FormattedText (из RTF или RichTextBox)

Я в настоящее время рендеринга текста используя объекты FormattedText и «рисовать их» прямо в визуальные объекты (для скорости/эффективности)

Задача У меня есть, как загрузить/сохранить/отредактировать этот богатый текст. Я бы хотел использовать RichTextBox для редактирования текста, но я не могу найти способ получить текст из текстового поля и в объект FormattedText (или наоборот)

Кто-нибудь знает, как это может быть достигнуты? Единственный способ, который я могу представить, - иметь какой-то «сериализатор в/из RTF» в объекте FormattedText, но это, похоже, не существует.

Благодаря

+0

Как об этом: http://www.wpfmentor.com/2009/01/how-to-transfer-rich-text -from.html – Clemens

ответ

0

Ссылка, размещенная Клеменсом выше http://www.wpfmentor.com/2009/01/how-to-transfer-rich-text-from.html, касается моей проблемы.

Как и в случае с ответом fooook - перебирайте встроенные объекты и применяйте их атрибуты к объекту FormattedText.

Позор, что FormattedText не поддерживает изображения (например, NSAttributedString на IOS/OSX)

1

Вы можете перебирать все встроенные объекты внутри от RichTextBox.Document, получить все свойства зависимостей, вы заинтересованы в, а затем установить их на новый объект FormattedText.

var formattedTextToDraw = new List<FormattedText>(); 

foreach (var paragraph in RichTextBox.Document.OfType<Paragraph>()) 
{ 
    foreach(var inline in paragraph) 
    { 
     formattedTextToDraw.Add(new FormattedText(
      inline.Text, //Text 
      inline.FontSize, //Fontsize 
      inline.Foreground, //Color 
      etc....) //Other properties for FormattedText constructor 
    } 
} 
Смежные вопросы