バージョン

クリップボードのサポート (xamSyntaxEditor)

トピックの概要

目的

このトピックでは、 xamSyntaxEditor™ コントロールでサポートしているクリップボードの操作について解説します。

前提条件

このトピックを理解するためには、以下のトピックを理解しておく必要があります。

トピック 目的

このトピックでは、 xamSyntaxEditor の機能を分かりやすく解説します。

このトピックでは、開発者とユーザー双方の視点から xamSyntaxEditor コントロールのテキスト編集機能をまとめました。

xamSyntaxEditor のクリップボード サポートとは

はじめに

xamSyntaxEditor コントロールでは、文書の編集に便利な、クリップボードによる切り取り、コピー、貼り付けができます。これらの操作は、 インフラスジスティックス コマンディング フレームワークで利用できます。

注:

Note

限定トラストの XBAP アプリケーションと Silverlight アプリケーションでは、このコントロールはプライベート クリップボードを使用します。プライベート クリップボードの場合、コントロール内のテキストではすべてのクリップボード機能を利用できますが、そのアプリケーション内の他の要素とはクリップボードによるインタラクションはできません。

コントロールの構成の概要

コントロール構成の要点チャート

以下の表は、クリップボード サポートで利用できるコマンドをまとめたものです。

作業 詳細 呼び出すコマンド

切り取り操作の実行

  • 切り取り

コピー操作を実行します

  • コピー

貼り付け操作を実行します

  • 貼り付け

xamSyntaxEditor コマンドの全リストについては、 イベントとコマンドのトピックを参照してください。

クリップボードによる切り取り

概要

クリップボードによる切り取り操作は、文書から選択したテキストをキャプチャして削除し、同時にその選択テキストをクリップボードに追加します。

コマンド設定

目的: 以下のコマンド ソースをインスタンス化します。 設定するプロパティ:

切り取り操作の実行

XAML の場合:

<Button Content="Cut">
    <ig:Commanding.Command>
        <igPrim:SyntaxEditorCommandSource EventName="Click" CommandType="Cut" />
    </ig:Commanding.Command>
</Button>

クリップボードによるコピー

概要

クリップボードによるコピーでは、文書から選択したテキストをコピーしてクリップボードに追加します。

コマンド設定

目的: 以下のコマンド ソースをインスタンス化します。 設定するプロパティ:

コピー操作の実行

SyntaxEditorCommandSource

EventName

CommandType

XAML の場合:

<Button Content="Copy">
    <ig:Commanding.Command>
        <igPrim:SyntaxEditorCommandSource EventName="Click" CommandType="Copy" />
    </ig:Commanding.Command>
</Button>

クリップボードにより貼り付け

概要

クリップボードによる貼り付けでは、状況に応じて、 xamSyntaxEditor の 現在のカレット位置にクリップボードのテキスト コンテンツを挿入するか、クリップボードのテキスト コンテンツを挿入して、文書で選択したテキストと置換します。

コマンド設定

目的: 以下のコマンド ソースをインスタンス化します。 設定するプロパティ:

貼り付け操作の実行

SyntaxEditorCommandSource

EventName

CommandType

XAML の場合:

<Button Content="Paste">
    <ig:Commanding.Command>
        <igPrim:SyntaxEditorCommandSource EventName="Click" CommandType="Paste" />
    </ig:Commanding.Command>
</Button>

イベント要旨

イベントの要旨表

クリップボード操作を実行すると、TextDocument を変更する前に xamSyntaxEditor コントロールの ClipboardOperationExecuting イベントを発生します。TextDocument への変更を保存するクリップボード操作の後に ClipboardOperationExecuted イベントを発生します。ClipboardOperationExecuting イベントをキャンセルすると、ClipboardOperationExecuted イベントを発生せずに現在のクリップボード操作を中止します。実行しているイベントまたは実行したイベントによってトリガーされたかどうかに関係なく、要求されたクリップボード操作 (切り取り、コピー、貼り付け) およびそのコンテンツを取得できます。

以下の表は、 xamSyntaxEditor コントロールによって発生されるクリップボード イベントをリストします。

イベント 詳細 イベント プロパティ

このイベントは、TextDocument を変更する前にクリップボード操作を実行する前に発生します。

  • クリップボード操作

  • クリップボード コンテンツ

  • イベントはキャンセル可能です。

このイベントは、TextDocument を変更したにクリップボード操作を実行した後に発生します。

  • クリップボード操作

  • クリップボード コンテンツ

ClipboardOperationExecuting イベント

説明

このイベントは、TextDocument を変更する前にクリップボード操作の実行の前に発生します。

コード

以下のコードは、ClipboardOperationExecuting イベントを処理する方法を示します。

C# の場合:

public void editor_COExecuting(object s, ClipboardOperationExecutingEventArgs e)
{
    // クリップボード操作 (切り取り、コピー、貼り付け) を取得する
    ClipboardOperation operation = e.ClipboardOperation;
    // クリップボード データを操作するためにデータ オブジェクトを取得する
    SyntaxEditorDataObject dataObject = e.DataObject;
    string dataAsString =
        dataObject.GetData(SyntaxEditorDataFormats.Text) as string;
    // クリップボード データを変更するか、
    dataObject.SetData(SyntaxEditorDataFormats.Text, "new string");
    // イベントとクリップボード操作をキャンセルできます
    e.Cancel = true;
}

Visual Basic の場合:

Public Sub editor_COExecuting(s As Object, e As ClipboardOperationExecutingEventArgs)
    ' クリップボード操作 (切り取り、コピー、貼り付け) を取得する
    Dim operation As ClipboardOperation = e.ClipboardOperation
    ' クリップボード データを操作するためにデータ オブジェクトを取得する
    Dim dataObject As SyntaxEditorDataObject = e.DataObject
    Dim dataAsString As String = _
        TryCast(dataObject.GetData(SyntaxEditorDataFormats.Text), String)
    ' クリップボード データを変更するか、
    dataObject.SetData(SyntaxEditorDataFormats.Text, "new string")
    ' イベントとクリップボード操作をキャンセルできます
    e.Cancel = True
End Sub

ClipboardOperationExecuted イベント

説明

このイベントは、TextDocument を変更した後にクリップボード操作の実行の後に発生します。

コード

以下のコードは、ClipboardOperationExecuted イベントを処理する方法を示します。

C# の場合:

public void editor_COExecuted(object s, ClipboardOperationExecutingEventArgs e)
{
    // クリップボード操作 (切り取り、コピー、貼り付け) を取得する
    ClipboardOperation operation = e.ClipboardOperation;
    // クリップボード データを操作するためにデータ オブジェクトを取得する
    SyntaxEditorDataObject dataObject = e.DataObject;
    string dataAsString =
        dataObject.GetData(SyntaxEditorDataFormats.Text) as string;
}

Visual Basic の場合:

Public Sub editor_COExecuted(s As Object, e As ClipboardOperationExecutingEventArgs)
    ' クリップボード操作 (切り取り、コピー、貼り付け) を取得する
    Dim operation As ClipboardOperation = e.ClipboardOperation
    ' クリップボード データを操作するためにデータ オブジェクトを取得する
    Dim dataObject As SyntaxEditorDataObject = e.DataObject
    Dim dataAsString As String = _
        TryCast(dataObject.GetData(SyntaxEditorDataFormats.Text), String)
End Sub

関連コンテンツ

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

トピック 目的

このトピックでは、 xamSyntaxEditor アプリケーションの構築とともにユーザーが利用できるイベントとサポート対象コマンドを紹介します。

このトピックでは、インフラジスティックス コマンディング フレームワークに関するさまざまな情報と、サンプルを紹介します。