0

我有一个来自 WPF RichTextBox的FlowDocument实例。我必须找到FlowDocument中所有更改样式的位置。

传入参数:

  • FlowDocument类型的文档- 用于分析的文档
  • TextPointer类型的beginPointendPoint -文档分析范围的开始和结束

返回数据:

  • TextPointer[]表示文档中检测到样式更改的位置列表

分析文本示例:“欢迎来到现实世界 ” 样式有四种变化:“Welcome”(正常)、“to”(粗体)、“the”(粗斜体)、“real”(斜体)、“world!” (普通的)

谢谢!

4

1 回答 1

1

FlowDocument包含Blocks的集合。每个块可以是段落类型。段落包含内联属性。样式的每次更改都是具有ContentBeginContentEnd的Inline实例。

所以整个文档的最终代码应该如下所示:

public TextPointer[] ExtractStyleChanges(FlowDocument doc)
{
    var result = new List<TextPointer>();
    foreach(var p in FlowDocument.Blocks.OfType<Paragraph>())
        foreach(var i in p.Inlines)
        {
            result.Add(i.ContentBegin);
        }
    return result.ToArray();            
}

可以使用 BeginPoint 和 EndPoint merker 升级此方法。

于 2013-05-29T07:20:25.870 回答