Área de transferência
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();
}