Skip to main content

ClipboardOperations Class

Definition​

Assembly:Avalonia.Controls.Documents
Package:Avalonia.Controls.Documents

Shared clipboard helpers used by both keyboard components and editor actions.

public class ClipboardOperations

Inheritance: object -> ClipboardOperations

Remarks​

Copy / cut publish the current selection as a single Avalonia.Input.DataTransfer item carrying both Avalonia.Input.DataFormat.Text (eager, via Avalonia.Controls.Documents.Serialization.PlainText.PlainTextSerializer) and any rich format produced by the supplied Avalonia.Controls.Documents.Serialization.IDocumentSerializers. Rich payloads use the deferred DataTransferItem.Set overload that takes a callback so they only run when a consumer actually requests the format.

Paste probes the clipboard via Avalonia.Controls.Documents.Primitives.Components.ClipboardOperations.TryGetSnapshotAsync(Avalonia.Input.Platform.IClipboard,System.Collections.Generic.IReadOnlyList{Avalonia.Controls.Documents.Serialization.IDocumentSerializer},System.Threading.CancellationToken) for the richest format the editor can deserialize; plain text is the fallback.

Methods​

NameDescription
CopyAsync (2 overloads)No summary available.
CutAsync (2 overloads)No summary available.
TryGetPlainTextSnapshotAsyncProbes the clipboard and returns a Avalonia.Controls.Documents.Serialization.Snapshot.DocumentSnapshot that carries plain text only — no formatting, no metadata, no inline wrappers, no lists, no tables. Intended for the "Paste Without Formatting" (Ctrl+Shift+V) path.
TryGetSnapshotAsyncNo summary available.

CopyAsync overloads​

CopyAsync Method​

public System.Threading.Tasks.Task CopyAsync(Avalonia.Controls.TextSelection selection, Avalonia.Visual visual, System.Collections.Generic.IReadOnlyList<Avalonia.Controls.Documents.Serialization.IDocumentSerializer> richSerializers)
Parameters​

selection Avalonia.Controls.TextSelection

visual Avalonia.Visual

richSerializers System.Collections.Generic.IReadOnlyList<Avalonia.Controls.Documents.Serialization.IDocumentSerializer>

Returns​

System.Threading.Tasks.Task

CopyAsync Method​

public System.Threading.Tasks.Task CopyAsync(Avalonia.Controls.TextSelection selection, Avalonia.Visual visual, System.Collections.Generic.IReadOnlyList<Avalonia.Controls.Documents.Serialization.IDocumentSerializer> richSerializers, System.Threading.CancellationToken cancellationToken)
Parameters​

selection Avalonia.Controls.TextSelection

visual Avalonia.Visual

richSerializers System.Collections.Generic.IReadOnlyList<Avalonia.Controls.Documents.Serialization.IDocumentSerializer>

cancellationToken System.Threading.CancellationToken

Returns​

System.Threading.Tasks.Task

CutAsync overloads​

CutAsync Method​

public System.Threading.Tasks.Task CutAsync(Avalonia.Controls.TextSelection selection, Avalonia.Visual visual, System.Collections.Generic.IReadOnlyList<Avalonia.Controls.Documents.Serialization.IDocumentSerializer> richSerializers)
Parameters​

selection Avalonia.Controls.TextSelection

visual Avalonia.Visual

richSerializers System.Collections.Generic.IReadOnlyList<Avalonia.Controls.Documents.Serialization.IDocumentSerializer>

Returns​

System.Threading.Tasks.Task

CutAsync Method​

public System.Threading.Tasks.Task CutAsync(Avalonia.Controls.TextSelection selection, Avalonia.Visual visual, System.Collections.Generic.IReadOnlyList<Avalonia.Controls.Documents.Serialization.IDocumentSerializer> richSerializers, System.Threading.CancellationToken cancellationToken)
Parameters​

selection Avalonia.Controls.TextSelection

visual Avalonia.Visual

richSerializers System.Collections.Generic.IReadOnlyList<Avalonia.Controls.Documents.Serialization.IDocumentSerializer>

cancellationToken System.Threading.CancellationToken

Returns​

System.Threading.Tasks.Task

TryGetPlainTextSnapshotAsync Method​

Probes the clipboard and returns a Avalonia.Controls.Documents.Serialization.Snapshot.DocumentSnapshot that carries plain text only — no formatting, no metadata, no inline wrappers, no lists, no tables. Intended for the "Paste Without Formatting" (Ctrl+Shift+V) path.

public System.Threading.Tasks.Task<Avalonia.Controls.Documents.Serialization.Snapshot.DocumentSnapshot> TryGetPlainTextSnapshotAsync(Avalonia.Input.Platform.IClipboard clipboard, System.Threading.CancellationToken cancellationToken)

Parameters​

clipboard Avalonia.Input.Platform.IClipboard

cancellationToken System.Threading.CancellationToken

Returns​

System.Threading.Tasks.Task<Avalonia.Controls.Documents.Serialization.Snapshot.DocumentSnapshot>

Remarks​

Probe order:

  1. Avalonia.Input.Platform.IClipboard.TryGetInProcessDataAsync → Avalonia.Controls.Documents.Primitives.Components.ClipboardFormats.InProcessSnapshot: when copy/paste happen within the same process, the rich snapshot is lowered through Avalonia.Controls.Documents.Serialization.PlainText.PlainTextSerializer (Serialize→Deserialize) so the returned snapshot keeps the source text exactly as our serializer emits it but drops every formatting, list, and table structure.
  2. Platform Avalonia.Input.DataFormat.Text via Avalonia.Input.Platform.IClipboard.TryGetDataAsync, fed to Avalonia.Controls.Documents.Serialization.PlainText.PlainTextSerializer.Deserialize(string).

Rich formats (RTF, etc.) are intentionally not probed — by convention, every producer that publishes RTF also publishes DataFormat.Text next to it.

TryGetSnapshotAsync Method​

public System.Threading.Tasks.Task<Avalonia.Controls.Documents.Serialization.Snapshot.DocumentSnapshot> TryGetSnapshotAsync(Avalonia.Input.Platform.IClipboard clipboard, System.Collections.Generic.IReadOnlyList<Avalonia.Controls.Documents.Serialization.IDocumentSerializer> richSerializers, System.Threading.CancellationToken cancellationToken)

Parameters​

clipboard Avalonia.Input.Platform.IClipboard

richSerializers System.Collections.Generic.IReadOnlyList<Avalonia.Controls.Documents.Serialization.IDocumentSerializer>

cancellationToken System.Threading.CancellationToken

Returns​

System.Threading.Tasks.Task<Avalonia.Controls.Documents.Serialization.Snapshot.DocumentSnapshot>