Copiar e colar
Este artigo explica como dar suporte a copiar e colar em aplicativos da Plataforma Universal do Windows (UWP) usando a área de transferência. Copiar e colar é a maneira clássica de trocar dados entre aplicativos ou dentro de um aplicativo, e quase todos os aplicativos podem suportar operações da área de transferência em algum grau. Para obter exemplos de código completos que demonstram vários cenários diferentes de copiar e colar, consulte o exemplo da área de transferência.
Verifique se há suporte para área de transferência integrada
Em muitos casos, você não precisa 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á dão suporte a operações de área de transferência.
Prepare-se para começar
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 todas as propriedades (como uma descrição) que você deseja incluir.
DataPackage dataPackage = new DataPackage();
Copiar e cortar
Copiar e cortar (também conhecido como mover) funcionam quase exatamente da mesma forma. 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 que um usuário selecionou ao objeto DataPackage . Se esses dados forem compatíveis com a classe DataPackage, você poderá usar um dos métodos correspondentes do objeto DataPackage. Veja como adicionar texto usando o método SetText :
dataPackage.SetText("Hello World!");
A última etapa é adicionar o DataPackage à área de transferência chamando o método estático SetContent.
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. 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;
}
}
Controlar alterações na área de transferência
Além dos comandos copiar e colar, você também pode querer controlar 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;
}
}
Confira também
- Exemplo de área de transferência
- Comunicação de aplicativo a aplicativo
- Transferência de dados
- DataPackage
- DataPackageView
- DataPackagePropertySet
- DataRequest
- DataRequested
- FailWithDisplayText
- ShowShareUi
- Operação solicitada
- Lista de controles
- Conteúdo do conjunto
- GetContent
- Formatos disponíveis
- Contém
- Conteúdo alterado