Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Copier et coller est un moyen fondamental pour les utilisateurs d’échanger des données entre des applications ou au sein d’une application. Cet article explique comment implémenter les fonctions de copie et de collage dans les applications WinUI et de plateforme Windows universelle (UWP) à l'aide des API du presse-papiers. Vous allez apprendre à copier, couper et coller des données, suivre les modifications du Presse-papiers et utiliser la classe DataPackage pour gérer différents formats de données.
Note
Vous pouvez également utiliser ces API dans d’autres applications de bureau via des API Windows Runtime (WinRT). Pour plus d’informations, consultez Appeler les API Windows Runtime dans les applications de bureau.
Pour obtenir des exemples de code complets qui illustrent différents scénarios de copie et de collage, consultez l’exemple de Presse-papiers UWP sur GitHub.
Vérifier la prise en charge intégrée du Presse-papiers
Dans de nombreux cas, vous n'avez pas besoin d'écrire du code pour gérer les opérations du Presse-papiers. La plupart des contrôles XAML par défaut que vous pouvez utiliser pour créer des applications prennent déjà en charge les opérations du Presse-papiers.
Préparez-vous
Tout d’abord, incluez l’espace de noms Windows.ApplicationModel.DataTransfer dans votre application. Ensuite, ajoutez une instance de l’objet DataPackage . Cet objet contient les données que l’utilisateur souhaite copier et toutes les propriétés (telles qu’une description) que vous souhaitez inclure.
Copier et couper
Copier et couper (également appelé déplacement) fonctionnent presque exactement de la même façon. Choisissez l’opération souhaitée à l’aide de la propriété RequestedOperation .
// copy
dataPackage.RequestedOperation = DataPackageOperation.Copy;
// or cut
dataPackage.RequestedOperation = DataPackageOperation.Move;
Définir le contenu copié
Ensuite, vous pouvez ajouter les données qu’un utilisateur a sélectionnées à l’objet DataPackage . Si ces données sont prises en charge par la classe DataPackage , vous pouvez utiliser l’une des méthodes correspondantes de l’objet DataPackage . Voici comment ajouter du texte à l’aide de la méthode SetText :
La dernière étape consiste à ajouter DataPackage au presse-papiers en appelant la méthode statique SetContent.
Coller
Pour obtenir le contenu du Presse-papiers, appelez la méthode GetContent statique. Cette méthode retourne un DataPackageView qui contient le contenu. Cet objet est presque identique à un objet DataPackage , sauf que son contenu est en lecture seule. Avec cet objet, vous pouvez utiliser la méthode AvailableFormats ou Contains pour identifier les formats disponibles. Ensuite, vous pouvez appeler la méthode DataPackageView correspondante pour obtenir les données.
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;
}
}
Suivre les modifications apportées au Presse-papiers
En plus des commandes copier-coller, vous pourriez également vouloir suivre les changements du presse-papiers. Pour ce faire, gérez l’événement ContentChanged du presse-papiers.
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;
}
}
Contenu connexe
Windows developer