UWP: Prise en charge du Presse-Papiers

In Mobile Development by Christian HissibiniLeave a Comment

Cet article explique comment prendre en charge le copier-coller dans les applications UWP en utilisant le Presse-papiers. Le copier-coller est la méthode classique d’échanger des données entre les applications, ou dans une application, et presque chaque application peut prendre en charge les opérations du Presse-papiers dans une certaine mesure.

Rechercher la prise en charge intégrée du Presse-papiers

Le plus souvent, vous n’avez pas besoin d’écrire de code supplémentaire pour fournir une prise en charge des opérations du Presse-papiers. De nombreux contrôles XAML par défaut disponibles pour créer les applications offrent déjà une prise en charge des opérations du Presse-papiers.

Préparation

Tout d’abord, incluez l’espace de noms Windows.ApplicationModel.DataTransfer dans votre application. Ensuite, ajoutez une instance à l’objet DataPackage. Cet objet contient les données que l’utilisateur souhaite copier ainsi que les propriétés (telles qu’une description) que vous voulez ajouter.C#Copier

DataPackage dataPackage = new DataPackage();

Copier et Couper

Copier et Couper (également appelé déplacement) fonctionne presque exactement de la même manière. Choisissez l’opération que vous souhaitez effectuer à l’aide de la propriété RequestedOperation.C#Copier

// copy 
dataPackage.RequestedOperation = DataPackageOperation.Copy;
// or cut
dataPackage.RequestedOperation = DataPackageOperation.Move;

Glisser-déplacer

Vous pouvez ensuite ajouter les données sélectionnées par l’utilisateur dans l’objet DataPackage. Si les données sont prises en charge par la classe DataPackage, utilisez l’une des méthodes correspondantes dans l’objet DataPackage. Voici comment ajouter du texte:C#Copier

dataPackage.SetText("Hello World!");

La dernière étape consiste à ajouter l’objet DataPackage dans le Presse-papiers en appelant la méthode statique SetContent.C#Copier

Clipboard.SetContent(dataPackage);

Coller

Pour obtenir le contenu du Presse-papiers, appelez la méthode statique GetContent. Cette méthode renvoie un objet DataPackageView avec son contenu. Cet objet est identique à l’objet DataPackage, sauf qu’il est en lecture seule. Avec cet objet, vous pouvez utiliser la propriété AvailableFormats ou la méthode Contains pour identifier les formats disponibles. Ensuite, appelez la méthode DataPackageView correspondante pour obtenir les données.C#Copier

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;
    }
}

Suivi des modifications dans le Presse-papiers

En plus des commandes copier et coller, vous pouvez également effectuer le suivi des modifications dans le Presse-papiers. Vous pouvez le faire en gérant l’événement ContentChanged du Presse-papiers.C#Copier

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;
    }
}

Leave a Comment