Udostępnij za pośrednictwem


Schowek

Browse sample. Przeglądanie przykładu

W tym artykule opisano sposób używania interfejsu użytkownika aplikacji wieloplatformowej platformy .NET (.NET MAUI). IClipboard Za pomocą tego interfejsu można kopiować i wklejać tekst do i ze schowka systemowego.

Domyślna implementacja interfejsu IClipboard jest dostępna za pośrednictwem Clipboard.Default właściwości . Zarówno interfejs, jak IClipboard i Clipboard klasa są zawarte w Microsoft.Maui.ApplicationModel.DataTransfer przestrzeni nazw.

Napiwek

Dostęp do schowka musi być wykonywany w głównym wątku interfejsu użytkownika. Aby uzyskać więcej informacji na temat wywoływania metod w głównym wątku interfejsu użytkownika, zobacz MainThread.

Korzystanie ze Schowka

Dostęp do schowka jest ograniczony do danych ciągów. Możesz sprawdzić, czy schowek zawiera dane, ustawić lub wyczyścić dane i odczytać dane. Zdarzenie ClipboardContentChanged jest zgłaszane za każdym razem, gdy zmienia się dane schowka.

W poniższym przykładzie kodu pokazano, jak za pomocą przycisku ustawić dane schowka:

private async void SetClipboardButton_Clicked(object sender, EventArgs e) =>
    await Clipboard.Default.SetTextAsync("This text was highlighted in the UI.");

W poniższym przykładzie kodu pokazano, jak za pomocą przycisku odczytywać dane schowka. Kod najpierw sprawdza, czy schowek zawiera dane, odczytuje te dane, a następnie używa wartości z SetTextAsync poleceniem null , aby wyczyścić schowek:

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);

Wyczyść schowek

Schowek można wyczyścić, przekazując null do SetTextAsync metody, jak pokazano w poniższym przykładzie kodu:

private async Task ClearClipboard() =>
    await Clipboard.Default.SetTextAsync(null);

Wykrywanie zmian schowka

Interfejs IClipboard udostępnia ClipboardContentChanged zdarzenie. Po wystąpieniu tego zdarzenia zawartość schowka uległa zmianie. Poniższy przykład kodu dodaje procedurę obsługi do zdarzenia po załadowaniu strony zawartości:

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();
}