Partilhar via


Área de transferência

Browse sample. Navegue pelo exemplo

Este artigo descreve como você pode usar a interface .NET Multi-platform App UI (.NET MAUI). IClipboard Com essa interface, você pode copiar e colar texto de e para a área de transferência do sistema.

A implementação padrão da interface está disponível por meio da IClipboard Clipboard.Default propriedade. A interface e Clipboard a IClipboard classe estão contidas no Microsoft.Maui.ApplicationModel.DataTransfer namespace.

Dica

O acesso à área de transferência deve ser feito no thread principal da interface do usuário. Para obter mais informações sobre como invocar métodos no thread da interface do usuário principal, consulte MainThread.

Como usar Clipboard

O acesso à área de transferência é limitado aos dados da cadeia de caracteres. Você pode verificar se a área de transferência contém dados, definir ou limpar os dados e ler os dados. O ClipboardContentChanged evento é gerado sempre que os dados da área de transferência são alterados.

O exemplo de código a seguir demonstra o uso de um botão para definir os dados da área de transferência:

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

O exemplo de código a seguir demonstra o uso de um botão para ler os dados da área de transferência. O código primeiro verifica se a área de transferência tem dados, lê esses dados e, em seguida, usa um null valor com SetTextAsync para limpar a área de transferência:

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

Limpar a área de transferência

Você pode limpar a área de transferência passando null para o método, como demonstra o SetTextAsync exemplo de código a seguir:

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

Detectando alterações na área de transferência

A IClipboard interface fornece o ClipboardContentChanged evento. Quando esse evento é gerado, o conteúdo da área de transferência é alterado. O exemplo de código a seguir adiciona um manipulador ao evento quando a página de conteúdo é carregada:

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