2016-04-14 62 views
0

我的WPF应用程序显示很多在不同地方的文本片段的一个大帆布(一种职位是注意应用程序)如何加载一个WPF FormattedText对象(从RTF或RichTextBox中)

我目前呈现文本使用FormattedText对象和'直接绘制它们'到可视对象中(用于速度/效率)

我遇到的挑战是如何加载/保存/编辑该富文本。我想使用RichTextBox来编辑文本 - 但我找不到将文本从文本框和FormattedText对象中取出的方法(或反之亦然)

任何人都知道这可能是怎么回事实现?我唯一能想到的就是在FormattedText对象上有一些'从/从RTF序列化'的功能 - 但似乎并不存在。

感谢

+0

如何:http://www.wpfmentor.com/2009/01/how-to-transfer-rich-text -from.html – Clemens

回答

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 
    } 
}