Share via


剪貼簿

Browse sample. 流覽範例

本文說明如何使用 .NET 多平臺應用程式 UI (.NET MAUI) IClipboard 介面。 透過這個介面,您可以從系統剪貼簿複製和貼上文字。

介面的預設實作 IClipboard 可透過 Clipboard.Default 屬性取得。 IClipboard介面和Clipboard類別都包含在 命名空間中Microsoft.Maui.ApplicationModel.DataTransfer

提示

若要存取剪貼簿,必須在主要使用者介面線程上完成。 如需如何在主要使用者介面線程上叫用方法的詳細資訊,請參閱 MainThread

使用 [剪貼簿]

剪貼簿的存取僅限於字串數據。 您可以檢查剪貼簿是否包含數據、設定或清除數據,以及讀取數據。 ClipboardContentChanged每當剪貼簿數據變更時,就會引發 事件。

下列程式代碼範例示範如何使用按鈕來設定剪貼簿資料:

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

下列程式代碼範例示範如何使用按鈕來讀取剪貼簿數據。 程式代碼會先檢查剪貼簿是否有數據、讀取該數據,然後使用 null 值來 SetTextAsync 清除剪貼簿:

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

清除剪貼簿

您可以傳遞 nullSetTextAsync 方法來清除剪貼簿,如下列程式代碼範例所示:

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

偵測剪貼簿變更

介面 IClipboard 會提供 ClipboardContentChanged 事件。 引發此事件時,剪貼簿內容已變更。 下列程式代碼範例會在載入內容頁面時,將處理程式新增至 事件:

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