Démarrage rapide : fonctions de base du Presse-papiers (HTML)
[ Cet article est destiné aux développeurs de Windows 8.x et Windows Phone 8.x qui créent des applications Windows Runtime. Si vous développez une application pour Windows 10, voir la Documentation ]
Les applications sont plébiscitées lorsqu’elles permettent aux utilisateurs de garder le plus de contrôle possible sur leurs données. Les opérations du Presse-papiers sont l’une des méthodes de contrôle que les utilisateurs espèrent trouver dans une application. Ces opérations permettent aux utilisateurs de couper, copier et coller des données. Les opérations du Presse-papiers peuvent être effectuées au sein d’une application ou entre deux applications installées sur le même ordinateur. Avec le Presse-papiers, les utilisateurs peuvent rapidement transférer des données à l’endroit où ils en ont besoin.
Les différentes façons de partager des données
Avant de vous montrer comment ajouter des opérations du Presse-papiers dans votre application, nous vous rappelons que Windows 8 prend en charge plusieurs méthodes de transfert des données. Pour obtenir une vue d’ensemble de ces méthodes, voir Partage et échange de données. Le partage, qui est l’une de ces méthodes, a de nombreuses similitudes avec le Presse-papiers. Pour le développeur, le partage et les opérations du Presse-papiers font appel au même espace de noms Windows, Windows.ApplicationModel.DataTransfer. Les deux méthodes nécessitent que votre application collecte les données sélectionnées par l’utilisateur. (Nous parlons souvent de « packaging », en référence à la classe DataPackage qui collecte les données.) Du point de vue de l’utilisateur, le Presse-papiers reste la méthode traditionnelle pour déplacer des données.
En tant que développeur, vous devez vous rappeler que, même si le partage et les opérations du Presse-papiers sont similaires, ces deux méthodes présentent quelques différences importantes. Avec le partage, l’accent est mis sur la cible, c’est-à-dire l’application ou le service que l’utilisateur sélectionne. Le Presse-papiers met davantage la priorité sur les données. Mais la différence majeure est que seules les opérations du Presse-papiers permettent de transférer des données entre une application du Windows Store et une application de bureau.
Pour plus d’informations sur les différences entre le partage et les opérations du Presse-papiers, voir Partage et échange de données.
Prise en charge intégrée du Presse-papiers
Le plus souvent, vous n’aurez pas besoin d’écrire de code supplémentaire pour fournir une prise en charge des opérations du Presse-papiers. La plupart des contrôles disponibles pour créer votre application du Windows Store offrent déjà une prise en charge des opérations du Presse-papiers. Pour plus d’informations sur les contrôles disponibles, voir Ajout de contrôles et de contenu.
Avant de commencer
Vous pouvez très facilement ajouter une prise en charge des opérations du Presse-papiers dans votre application. Avant de commencer, nous vous recommandons de consulter la rubrique Recommandations et liste de vérification sur les commandes du Presse-papiers. Vous y trouverez de nombreuses informations pour vous aider à optimiser l’expérience utilisateur pour les opérations du Presse-papiers, ainsi que certaines considérations sur la façon de tirer pleinement parti de votre code.
Vous devez ensuite déterminer pour quels types de formats de données vous souhaitez fournir une prise en charge. Dans Windows 8, deux catégories de formats sont proposées : les formats standards et les formats personnalisés. Actuellement, les formats standard incluent :
- Texte
- HTML
- URI
- Bitmaps
- StorageItems
- RTF
Pour obtenir un exemple d’opérations du Presse-papiers basées sur ces formats de données, voir cet exemple de code. Vous pouvez également consulter la rubrique de référence sur la classe StandardDataFormats qui vous permet de spécifier les types de formats pris en charge par votre application.
Les formats de données personnalisés, comme le nom l’indique, désignent les formats de données qui ne peuvent pas être classés dans l’un des formats standards. Ces formats représentent souvent des collections logiques de données, telles qu’une adresse ou un événement. Pour prendre en charge les formats personnalisés, nous vous encourageons fermement à utiliser l’un des nombreux schémas spécifiés sur le site http://schema.org/docs/full.htm. L’utilisation de formats de données connus, tels que ces schémas, garantit que l’application cible saura traiter de manière appropriée les données du Presse-papiers qu’elle reçoit.
Prise en main
La prise en charge des opérations du Presse-papiers concerne généralement deux types d’actions : Copier (ou Couper) et Coller. Examinons d’abord la façon de gérer les opérations Copier et Coller. Commencez par vérifier que votre application comporte les références requises. Si vous utilisez un modèle Microsoft Visual Studio, ces références sont automatiquement ajoutées lors de la création d’un projet. Si vous n’utilisez pas Visual Studio, assurez-vous que votre application a accès à l’espace de noms Windows.ApplicationModel.DataTransfer.
Après avoir configuré votre projet, vous devez définir une instance de 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.
var dataPackage = new Windows.ApplicationModel.DataTransfer.DataPackage();
Copier et Couper
À ce stade, vous pouvez définir les opérations du Presse-papiers à effectuer. Ces opérations sont disponibles par le biais de l’énumération DataPackageOperation. Voici comment procéder pour les opérations Copier :
var dataPackage = new Windows.ApplicationModel.DataTransfer.DataPackage();
dataPackage.requestedOperation = Windows.ApplicationModel.DataTransfer.DataPackageOperation.copy;
Voici comment procéder pour les opérations Couper (également appelées « opérations de déplacement ») :
var dataPackage = new Windows.ApplicationModel.DataTransfer.DataPackage();
dataPackage.requestedOperation = Windows.ApplicationModel.DataTransfer.DataPackageOperation.move;
Vous pouvez maintenant 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.
Pour ajouter du texte :
dataPackage.setText("Hello World!");
Pour obtenir des exemples d’ajout d’autres formats dans un objet DataPackage, voir l’exemple de code utilisant le Presse-papiers dans la bibliothèque de code. Gardez à l’esprit que vous avez la possibilité d’ajouter plusieurs formats dans un objet DataPackage.
Il ne vous reste plus qu’à ajouter l’objet DataPackage dans le Presse-papiers. Pour ce faire, appelez la méthode statique Clipboard.setContent.
Windows.ApplicationModel.DataTransfer.Clipboard.setContent(dataPackage);
Coller
Pour obtenir le contenu du Presse-papiers, appelez la méthode statique Clipboard.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. Par exemple, procédez de la façon suivante pour obtenir le texte contenu dans le Presse-papiers :
var dataPackageView = Windows.ApplicationModel.DataTransfer.Clipboard.getContent();
if (dataPackageView.contains(Windows.ApplicationModel.DataTransfer.StandardDataFormats.text)) {
dataPackageView.getTextAsync().then(function (text) {
// To output the text from this example, you need an HTML element
// with an id of "output".
document.getElementById("output").innerText = "Clipboard now contains: " + text;
});
}
Suivi des modifications dans le Presse-papiers
En plus des commandes Copier et Coller, il peut être utile d’ajouter un gestionnaire d’événements pour que votre application soit avertie des modifications apportées au contenu du Presse-papiers. Vous pouvez le faire en gérant l’événement ContentChanged du Presse-papiers.
Windows.ApplicationModel.DataTransfer.Clipboard.addEventListener("contentchanged", function (event) {
var dataPackageView = Windows.ApplicationModel.DataTransfer.Clipboard.getContent();
if (dataPackageView.contains(Windows.ApplicationModel.DataTransfer.StandardDataFormats.text)) {
dataPackageView.getTextAsync().then(function (text) {
// To output the text from this example, you need an HTML element
// with an id of "output".
document.getElementById("output").innerText = "Clipboard now contains: " + text;
});
}
});
Ce gestionnaire notifie à votre application toute modification du contenu du Presse-papiers.
Étapes suivantes
Vous avez désormais les connaissances de base pour ajouter une prise en charge du Presse-papiers à votre application. Si vous ne l’avez pas déjà fait, nous vous recommandons de consulter la rubrique Recommandations et liste de vérification sur les commandes du Presse-papiers, qui vous explique comment offrir la meilleure expérience utilisateur possible. Vous pouvez également télécharger l’exemple de notre bibliothèque de code pour obtenir divers exemples d’utilisation du Presse-papiers.
Rubriques associées
Démarrage rapide : fonctions de base du Presse-papiers
Recommandations et liste de vérification sur les commandes du Presse-papiers