バージョン

検索 / 置換の管理 (xamRichTextEditor)

トピックの概要

目的

このトピックは、 xamRichTextEditor ™ コントロールの検索および置換機能を説明します。

前提条件

このトピックをより理解するために、以下のトピックを参照することをお勧めします。

トピック 目的

このトピックでは、 xamRichTextEditor コントロールがサポートする機能の概要を説明します。

このトピックは、 xamRichTextEditor でコンテンツをプログラム処理する際に必要なドキュメントのコンテンツ論理構造を説明します。

このトピックでは、 xamRichTextEditor を短時間で起動、実行するために役立つ詳細な操作方法を紹介します。

このトピックの内容

このトピックは、以下のセクションで構成されます。

検索と置換の概要

検索と置換の概要表

xamRichTextEditor ドキュメントは、テキスト コンテンツの検索と置換操作をサポートしています。これらの機能は RichTextDocument のメソッドを使用してアクセスできます。検索と置換機能は両方とも、メソッドのオーバーロードを使用して単一または複数のドキュメント間で操作ができます。また、検索と置換機能はどちらも、大文字と小文字の区別およびワイルドカード検索モードをサポートしています。

注:

Note

ワイルドカードのサポートは Visual Basic の Like 演算子で使用されるパターンと同じです。

構成可能な項目 詳細 メソッド

ドキュメントのコンテンツ検索に使用

ドキュメントのコンテンツ置換に使用

テキスト コンテンツの検索

概要

RichTextDocumentFindAll メソッドを使用して、ドキュメントのコンテンツから特定のテキストを検索できます。メソッドは、 FindResult 型のオブジェクトを返し、 FindMatch 型の一致する値に対し繰り返し使用できます。各 FindMatch オブジェクトには、一致する値を使用するドキュメント範囲が含まれます。

プロパティ設定

以下の表では、任意の動作と各メソッドのマップを示します。

目的: このメソッドを使用 次の引数を提供:

テキストの検索

FindAll

span - ドキュメントの範囲

textToFind - 検索するテキスト

error - ワイルドカード検索モードで textToFind ワイルドカードが無効な場合に、操作中に発生するエラーが含まれる文字列のオブジェクト

findCriteria - 大文字と小文字を区別する検索モードまたはワイルドカード検索モードの指定に使用される FindCriteria 型のオブジェクト

以下のコード スニペットは、FindAll メソッドを起動して、ドキュメントの全範囲を対象に全検索を繰り返す方法を紹介します。

C# の場合:

FindCriteria fc = new FindCriteria();
fc.CaseSensitive = this.cbCase.IsChecked ?? false;
fc.Operator =
    (this.cbWildcard.IsChecked.HasValue && this.cbWildcard.isChecked.Value) ?
    FindOperator.Wildcard : FindOperator.PlainText;
DocumentSpan ds = this.xamRichTextEditor1.Document.RootNode.Body.GetDocumentSpan();
string errorMsg;
FindResult fr = this.xamRichTextEditor1.Document.FindAll(ds,
    "text-to-find", out errorMsg, fc);
if (fr.HasMatch)
{
    foreach (FindMatch fm in fr.Matches)
    {
        // 各検索一致のドキュメント範囲を取得
        DocumentSpan span = fm.Span;
    }
}

Visual Basic の場合:

Dim fc As New FindCriteria()
fc.CaseSensitive = If(Me.cbCase.IsChecked, False)
fc.[Operator] = _
    If((Me.cbWildcard.IsChecked.HasValue AndAlso Me.cbWildcard.isChecked.Value), _
    FindOperator.Wildcard, FindOperator.PlainText)
Dim ds As DocumentSpan = Me.xamRichTextEditor1.Document.RootNode.Body.GetDocumentSpan()
Dim errorMsg As String
Dim fr As FindResult = Me.xamRichTextEditor1.Document.FindAll(ds, "text-to-find", errorMsg, fc)
If fr.HasMatch Then
      For Each fm As FindMatch In fr.Matches
            ' 各検索一致のドキュメント範囲を取得
            Dim span As DocumentSpan = fm.Span
      Next
End If

コンテンツの置換

概要

RichTextDocumentReplaceAll メソッドを使用して、テキストまたはコンテンツを特定のテキストに置換します。特定のコンテンツを置換するには ReplaceContents メソッドを使用します。置換操作は指定されたドキュメント範囲で実行されます。ReplaceAll メソッドは、 Replacement 型の置換項目に対して繰り返し使用される ReplaceResult 型のオブジェクトを返します。Replacement オブジェクトには、検索一致および置換テキストやコンテンツが含まれています。

プロパティ設定

以下の表では、任意の動作と各メソッドのマップを示します。

目的: このメソッドを使用 次の引数を提供:

テキストの置換

ReplaceAll

span/spans - 置換操作を実行するドキュメント範囲

textToFind - 検索に使用されるテキスト

replacementText/replacementContent - テキストの置換に使用される文字列または NodeBase

error - 操作中に発生したエラーを含む文字列のオブジェクト

findCriteria - 大文字と小文字を区別する検索モードまたはワイルドカード検索モードの指定に使用される FindCriteria 型のオブジェクト

コンテンツの置換

ReplaceContent

span - 置換操作を実行するドキュメント範囲

newText/contentNode - 指定されたコンテンツの置換に使用される文字列または NodeBase

error - 操作中に発生したエラーを含む文字列のオブジェクト

breakParagraphBeforeContent - true に設定すると、新規コンテンツの前に新しい段落を挿入します。

breakParagraphAfterContent - true に設定すると、新規コンテンツの後ろに新しい段落を挿入します。

以下のコード スニペットは、ReplaceAll メソッドを起動して、ドキュメントの全範囲のテキスト コンテンツを置換する方法を紹介します。

C# の場合:

FindCriteria fc = new FindCriteria();
fc.CaseSensitive = this.cbCase.IsChecked ?? false;
fc.Operator =
    (this.cbWildcard.IsChecked.HasValue && this.cbWildcard.isChecked.Value) ?
    FindOperator.Wildcard : FindOperator.PlainText;
DocumentSpan ds = this.xamRichTextEditor1.Document.RootNode.Body.GetDocumentSpan();
string errorMsg;
this.xamRichTextEditor1.Document.ReplaceAll(ds,
    "old-text", "new-text", out errorMsg, fc);

Visual Basic の場合:

Dim fc As New FindCriteria()
fc.CaseSensitive = If(Me.cbCase.IsChecked, False)
fc.[Operator] = _
    If((Me.cbWildcard.IsChecked.HasValue AndAlso Me.cbWildcard.isChecked.Value), _
    FindOperator.Wildcard, FindOperator.PlainText)
Dim ds As DocumentSpan = Me.xamRichTextEditor1.Document.RootNode.Body.GetDocumentSpan()
Dim errorMsg As String
Me.xamRichTextEditor1.Document.ReplaceAll(ds, "old-text", "new-text", errorMsg, fc)

関連コンテンツ

このトピックの追加情報については、以下のトピックも合わせてご参照ください。

トピック 目的

このトピックは、 xamRichTextEditor コントロールのクリップボードの操作について、開発者の観点から説明します。

このトピックは、 xamRichTextEditor コントロールの選択機能を、開発者の観点から説明します。

このトピックは、 xamRichTextEditor コントロールの [元に戻す] および [やり直し] の操作について、開発者の観点から説明します。