Zwischenablage
In diesem Artikel wird beschrieben, wie Sie die .NET Multi-Platform App UI (.NET MAUI) IClipboard-Schnittstelle verwenden können. Mit dieser Schnittstelle können Sie Text in und aus der Systemzwischenablage kopieren und einfügen.
Die Standardimplementierung der IClipboard
-Schnittstelle ist über die Clipboard.Default-Eigenschaft verfügbar. Die IClipboard
-Schnittstelle sowie die Clipboard
-Klasse sind im Microsoft.Maui.ApplicationModel.DataTransfer
-Namespace enthalten.
Tipp
Der Zugriff auf die Zwischenablage muss über den Hauptthread der Benutzeroberfläche erfolgen. Weitere Informationen zum Aufrufen von Methoden Hauptthread der Benutzeroberfläche finden Sie unter MainThread".
Verwenden der Zwischenablage
Der Zugriff auf die Zwischenablage ist auf Zeichenfolgendaten beschränkt. Sie können überprüfen, ob die Zwischenablage Daten enthält, die Daten festlegen oder löschen und die Daten lesen. Das ClipboardContentChanged-Ereignis wird ausgelöst, wenn sich die Daten der Zwischenablage ändern.
Das folgende Codebeispiel veranschaulicht die Verwendung einer Schaltfläche zum Festlegen der Zwischenablagedaten:
private async void SetClipboardButton_Clicked(object sender, EventArgs e) =>
await Clipboard.Default.SetTextAsync("This text was highlighted in the UI.");
Im folgenden Codebeispiel wird die Verwendung einer Schaltfläche zum Lesen der Zwischenablagedaten veranschaulicht. Der Code überprüft zuerst, ob die Zwischenablage Daten enthält, liest die Daten und verwendet dann einen null
-Wert mit SetTextAsync, um die Zwischenablage zu löschen:
private async void ReadClipboardButton_Clicked(object sender, EventArgs e)
{
if (Clipboard.Default.HasText)
{
ClipboardOutputLabel.Text = await Clipboard.Default.GetTextAsync();
await ClearClipboard();
}
else
ClipboardOutputLabel.Text = "Clipboard is empty";
}
private async Task ClearClipboard() =>
await Clipboard.Default.SetTextAsync(null);
Löschen der Zwischenablage
Sie können die Zwischenablage löschen, indem Sie null
an die SetTextAsync-Methode übergeben, wie im folgenden Codebeispiel veranschaulicht wird:
private async Task ClearClipboard() =>
await Clipboard.Default.SetTextAsync(null);
Erkennen von Zwischenablageänderungen
Die IClipboard-Schnittstelle stellt das ClipboardContentChanged-Ereignis bereit. Wenn dieses Ereignis ausgelöst wird, hat sich der Inhalt der Zwischenablage geändert. Im folgenden Codebeispiel wird dem Ereignis beim Laden der Inhaltsseite ein Handler hinzugefügt:
private void ContentPage_Loaded(object sender, EventArgs e)
{
Clipboard.Default.ClipboardContentChanged += Clipboard_ClipboardContentChanged;
}
private async void Clipboard_ClipboardContentChanged(object sender, EventArgs e)
{
ClipboardOutputLabel.Text = await Clipboard.Default.GetTextAsync();
}