我的WPF应用在大画布的各个地方显示了很多文字片段(一种便利贴应用)
我目前正在使用FormattedText对象渲染文本并“绘制它们”#39;直接进入视觉对象(速度/效率)
我遇到的挑战是如何加载/保存/编辑该富文本。我想使用RichTextBox编辑文本 - 但是我无法找到一种方法将文本从文本框中取出并转换为FormattedText对象(反之亦然)
任何人都知道如何实现这一目标?我能想到的唯一方法是在RTF'之间进行某种序列化。
表示FormattedText对象的功能 - 但似乎不存在。由于
答案 0 :(得分: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
}
}
答案 1 :(得分:0)
Clemens上面http://www.wpfmentor.com/2009/01/how-to-transfer-rich-text-from.html发布的链接解决了我的问题。
与fooook的答案类似 - 遍历内联对象并将其属性应用于FormattedText对象。
格式化FormattedText不支持图像(比如iOS / OSX上的NSAttributedString)