<Button Content="Cut">
<ig:Commanding.Command>
<igPrim:SyntaxEditorCommandSource EventName="Click" CommandType="Cut" />
</ig:Commanding.Command>
</Button>
このトピックでは、 xamSyntaxEditor™ コントロールでサポートしているクリップボードの操作について解説します。
このトピックを理解するためには、以下のトピックを理解しておく必要があります。
このトピックは、以下のセクションで構成されます。
xamSyntaxEditor コントロールでは、文書の編集に便利な、クリップボードによる切り取り、コピー、貼り付けができます。これらの操作は、 インフラスジスティックス コマンディング フレームワークで利用できます。
注:
以下の表は、クリップボード サポートで利用できるコマンドをまとめたものです。
xamSyntaxEditor コマンドの全リストについては、 イベントとコマンドのトピックを参照してください。
クリップボードによる切り取り操作は、文書から選択したテキストをキャプチャして削除し、同時にその選択テキストをクリップボードに追加します。
XAML の場合:
<Button Content="Cut">
<ig:Commanding.Command>
<igPrim:SyntaxEditorCommandSource EventName="Click" CommandType="Cut" />
</ig:Commanding.Command>
</Button>
クリップボードによるコピーでは、文書から選択したテキストをコピーしてクリップボードに追加します。
XAML の場合:
<Button Content="Copy">
<ig:Commanding.Command>
<igPrim:SyntaxEditorCommandSource EventName="Click" CommandType="Copy" />
</ig:Commanding.Command>
</Button>
クリップボードによる貼り付けでは、状況に応じて、 xamSyntaxEditor の 現在のカレット位置にクリップボードのテキスト コンテンツを挿入するか、クリップボードのテキスト コンテンツを挿入して、文書で選択したテキストと置換します。
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
を変更する前にクリップボード操作の実行の前に発生します。
以下のコードは、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
このイベントは、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
このトピックにの追加情報については、以下のトピックも合わせてご参照ください。