https://learn.microsoft.com/zh-CN/dotnet/maui/platform-integration/data/clipboard?view=net-maui-7.0&share_token=CAA73443-AB56-4D9E-96F7-9B0FCCEEFB51&tt_from=weixin&utm_source=weixin&utm_medium=toutiao_ios&utm_campaign=client_share&wxshare_count=1

使用 Clipboard

对剪贴板的访问仅限于字符串数据。 可以检查剪贴板是否包含数据、设置或清除数据以及读取数据。 ClipboardContentChanged每当剪贴板数据更改时,将引发 该事件。

下面的代码示例演示如何使用按钮设置剪贴板数据:

C#

复制

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

下面的代码示例演示如何使用按钮读取剪贴板数据。 代码首先检查剪贴板是否包含数据,读取该数据,然后使用 null 值 SetTextAsync 来清除剪贴板:

C#

复制

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 方法清除剪贴板,如以下代码示例所示:

C#

复制

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

检测剪贴板更改

接口 IClipboard 提供 ClipboardContentChanged 事件。 引发此事件时,剪贴板内容已更改。 下面的代码示例在加载内容页时将处理程序添加到 事件:

C#

复制

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();
}
文档更新时间: 2023-11-16 21:09   作者:admin