0

WPF RichTextBoxのFlowDocumentインスタンスがあります。スタイルが変更されたFlowDocument内のすべての場所を見つける必要があります。

受信パラメータ:

  • FlowDocumentタイプのドキュメント- 分析用のドキュメント
  • TextPointerタイプのbeginPointendPoint -ドキュメントからの分析範囲の開始と終了

返すデータ:

  • スタイルの変更が検出されたドキュメント内の場所のリストを表すTextPointer[]

分析用テキストのサンプル: 「現実世界ようこそ!」スタイルには、「Welcome」(通常)、「to」(太字)、「the」(太字イタリック体)、「real」(イタリック体)、「world!」の 4 つの変更があります。(正常)

ありがとうございました!

4

1 に答える 1

1

FlowDocumentにはBlocksのコレクションが含まれています。各ブロックは段落タイプにすることができます。ParagraphにはInlinesプロパティが含まれています。スタイルのすべての変更は、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 マーカーでアップグレードできます。

于 2013-05-29T07:20:25.870 に答える