如何加载一个WPF FormattedText对象(从RTF或RichTextBox中)
问题描述:
我的WPF应用程序显示很多在不同地方的文本片段的一个大帆布(一种职位是注意应用程序)如何加载一个WPF FormattedText对象(从RTF或RichTextBox中)
我目前呈现文本使用FormattedText对象和'直接绘制它们'到可视对象中(用于速度/效率)
我遇到的挑战是如何加载/保存/编辑该富文本。我想使用RichTextBox来编辑文本 - 但我找不到将文本从文本框和FormattedText对象中取出的方法(或反之亦然)
任何人都知道这可能是怎么回事实现?我唯一能想到的就是在FormattedText对象上有一些'从/从RTF序列化'的功能 - 但似乎并不存在。
感谢
答
Clemens发布的链接超过http://www.wpfmentor.com/2009/01/how-to-transfer-rich-text-from.html可解决我的问题。
与fooook的答案类似 - 遍历内联对象并将其属性应用于FormattedText对象。
耻辱,FormattedText不(在iOS/OSX就像NSAttributedString)支持图像
答
您可以通过所有的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
}
}
如何:http://www.wpfmentor.com/2009/01/how-to-transfer-rich-text -from.html – Clemens