我有一个来自WPF RichTextBox 的 FlowDocument 实例。我必须找到 FlowDocument 中更改样式的所有位置。
参与参数:
返回数据:
分析文字示例:“欢迎 真实的世界!”有四种风格:“欢迎”(正常),“到”(粗体),“”(粗体斜体),“真实”(斜体),“世界!” (正常)
谢谢!
答案 0 :(得分:1)
FlowDocument 包含 Blocks 的集合。每个块可以是段落类型。 段落包含内联属性。样式的每次更改都是 Inline 实例,其中包含 ContentBegin 和 ContentEnd 。
因此整个文档的最终代码如下所示:
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硬件升级。