Les fonctions Copier/Coller sont aussi banales qu'incontournable dans tout logiciel informatique ou site WEB.
Cependant, sur Silverlight 3 ce n'est pas une tâche aisée à faire. En effet, pour des raisons de sécurité, le client silverlight n'a pas accès au presse-papier (Clipboard), la classe "Clipboard" existant dans c# ou ASP .NET n'étant pas implémentée.
Afin de pouvoir Copier/Coller sur le client Silverlight il va falloir passer par des fonctions en javascript.
Ces 2 méthodes doivent être implémentées dans les pages .aspx et .html du projet Silverlight dans la partie Server.
Copier dans le presse-papier :
Ajouter la méthode javascript suivante
<script type="text/javascript" language="javascript">
function CopyToClipBoard(TexteACopier)
{
window.clipboardData.setData('Text', TexteACopier);
}
</script>
Coller à partir du presse-papier :
Ajouter la méthode javascript suivante
<script type="text/javascript" language="javascript">
function PasteFromClipBoard() {
document.getElementsByName("search").focus();
var PastedText = document.getElementsByName("search").createTextRange();
PastedText.execCommand("Paste");
}
</script>
Utiliser à partir d'une page :
Une fois les 2 méthodes implémentées, il est possible d'y accéder à partir d'une page client comme suit :
void copy_Click(object sender, Telerik.Windows.RadRoutedEventArgs e)
{
HtmlPage.Window.CreateInstance("CopyToClipBoard", contenurep);
}
où contenurep est une chaîne de caractères (string).
Remarque :
Cependant, la nouvelle version de Silverlight (Silverlight 4) facilte l'utilisation des fonctions Copier/Coller, et sont disponibles à partir de la classe "Clipboard".
Pour plus d'informations, cosulter http://msdn.microsoft.com/fr-fr/library/system.windows.clipboard(VS.95).aspx