Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Copiar e colar é uma maneira fundamental para os usuários trocarem dados entre aplicativos ou dentro de um aplicativo. Este artigo mostra como implementar copiar e colar em aplicações WinUI e da Plataforma Universal do Windows (UWP) usando as APIs da área de transferência. Você aprenderá como copiar, cortar e colar dados, monitorar alterações na área de transferência e usar a classe DataPackage para lidar com diferentes formatos de dados.
Observação
Você também pode usar estas APIs em outras aplicações de ambiente de trabalho através das APIs do Windows Runtime (WinRT). Para obter mais informações, consulte Utilizar as APIs do Tempo de Execução do Windows em aplicações da área de trabalho.
Para exemplos completos de código que demonstrem diferentes cenários de copiar e colar, consulte o exemplo de clipboard UWP no GitHub.
Verifique se há suporte integrado à área de transferência
Em muitos casos, não é necessário escrever código para dar suporte a operações da área de transferência. Muitos dos controles XAML padrão que você pode usar para criar aplicativos já oferecem suporte a operações da área de transferência.
Prepare-se
Primeiro, inclua o namespace Windows.ApplicationModel.DataTransfer em seu aplicativo. Em seguida, adicione uma instância do objeto DataPackage . Este objeto contém os dados que o usuário deseja copiar e quaisquer propriedades (como uma descrição) que você deseja incluir.
- C#
- C++/WinRT
using Windows.ApplicationModel.DataTransfer;
...
var dataPackage = new DataPackage();
Copiar e cortar
Copiar e cortar (também referido como mover) funcionam quase exatamente da mesma forma. Escolha qual operação você deseja usando a propriedade RequestedOperation .
- C#
- C++/WinRT
// copy
dataPackage.RequestedOperation = DataPackageOperation.Copy;
// or cut
dataPackage.RequestedOperation = DataPackageOperation.Move;
Definir o conteúdo copiado
Em seguida, você pode adicionar os dados que um usuário selecionou ao objeto DataPackage . Se esses dados forem suportados pela classe DataPackage , você poderá usar um dos métodos correspondentes do objeto DataPackage . Veja como adicionar texto usando o método SetText :
- C#
- C++/WinRT
dataPackage.SetText("Hello World!");
A última etapa é adicionar o DataPackage à área de transferência chamando a método estático SetContent.
- C#
- C++/WinRT
Clipboard.SetContent(dataPackage);
Colar
Para obter o conteúdo da área de transferência, chame o método estático GetContent. Esse método retorna um DataPackageView que contém o conteúdo. Este objeto é quase idêntico a um objeto DataPackage , exceto que seu conteúdo é somente leitura. Com esse objeto, você pode usar o método AvailableFormats ou Contains para identificar quais formatos estão disponíveis. Em seguida, você pode chamar o método DataPackageView correspondente para obter os dados.
- C#
- C++/WinRT
async void OutputClipboardText()
{
DataPackageView dataPackageView = Clipboard.GetContent();
if (dataPackageView.Contains(StandardDataFormats.Text))
{
string text = await dataPackageView.GetTextAsync();
// To output the text from this example, you need a TextBlock control
TextOutput.Text = "Clipboard now contains: " + text;
}
}
Rastrear alterações na área de transferência
Além dos comandos de copiar e colar, também poderá desejar controlar as alterações na área de transferência. Faça isso manipulando o evento ContentChanged da área de transferência.
- C#
- C++/WinRT
Clipboard.ContentChanged += async (s, e) =>
{
DataPackageView dataPackageView = Clipboard.GetContent();
if (dataPackageView.Contains(StandardDataFormats.Text))
{
string text = await dataPackageView.GetTextAsync();
// To output the text from this example, you need a TextBlock control
TextOutput.Text = "Clipboard now contains: " + text;
}
}
Conteúdo relacionado
Windows developer