2013-05-28 29 views
0

我有一个FlowDocument来自WPF的实例RichTextBox。我必须在风格发生变化的FlowDocument中找到所有地方。如何在FlowDocument中查找风格发生变化的位置

进来的参数:类型的

  • DOC的FlowDocument - 用于分析文档
  • beginPoint端点类型TextPointer的 - 开始和用于分析的范围的端部来自doc

返回数据:

  • TextPointer []代表在DOC这里的风格变化检测

示例文本进行分析的位置列表:“欢迎the real world!“有四种风格:“欢迎”(正常),“至”(粗体),“粗体”,“真实”(斜体),“世界!”。 (普通)

谢谢!

回答

1

FlowDocument包含集合。每块可以是段落类型。 段落包含内联属性。风格的每一个变化是内联实例,它有ContentBeginContentEnd

对整个文档,以便最终代码应该看起来像如下:

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 merkers进行升级。

相关问题