Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Copiar e colar é uma maneira fundamental para os usuários trocarem dados entre aplicativos ou dentro de um aplicativo. Este artigo mostra como implementar a cópia e a colagem em aplicativos WinUI e UWP (Plataforma Universal do Windows) usando as APIs da área de transferência. Você aprenderá a copiar, recortar e colar dados, acompanhar 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 essas APIs em outros aplicativos da área de trabalho por meio de APIs do WinRT (Windows Runtime). Para obter mais informações, consulte Chamar APIs do Windows Runtime em aplicativos da área de trabalho.
Para obter exemplos de código completos que demonstram diferentes cenários de cópia e colagem, consulte o exemplo de área de transferência UWP no GitHub.
Verificar se há suporte integrado à área de transferência
Em muitos casos, você não precisa escrever código para dar suporte a operações de área de transferência. Muitos dos controles XAML padrão que você pode usar para criar aplicativos já dão suporte a operações de área de transferência.
Configure-se
Primeiro, inclua o namespace Windows.ApplicationModel.DataTransfer em seu aplicativo. Em seguida, adicione uma instância do objeto DataPackage . Esse objeto contém os dados que o usuário deseja copiar e quaisquer propriedades (como uma descrição) que você deseja incluir.
Copiar e recortar
Copiar e recortar (também conhecido como mover) funciona quase exatamente o mesmo. Escolha qual operação você deseja usando a propriedade RequestedOperation .
// copy
dataPackage.RequestedOperation = DataPackageOperation.Copy;
// or cut
dataPackage.RequestedOperation = DataPackageOperation.Move;
Definir o conteúdo copiado
Em seguida, você pode adicionar os dados selecionados por um usuário ao objeto DataPackage . Se esses dados tiverem suporte na classe DataPackage , você poderá usar um dos métodos correspondentes do objeto DataPackage . Veja como adicionar texto usando o método SetText :
A última etapa é adicionar o DataPackage à área de transferência chamando o método estático SetContent.
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. Esse 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.
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;
}
}
Acompanhar mudanças na área de transferência
Além de os comandos de copiar e colar, talvez você também queira acompanhar as alterações da área de transferência. Faça isso manipulando o evento ContentChanged da área de transferência.
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