2010-05-10 14 views
3

J'ai une applications Silverlight 3.0 avec des graphiques personnalisés et des graphiques. Je dois trouver le meilleur moyen de transférer ces graphiques à une présentation PowerPoint. J'ai lu que Silverlight 4.0 offre une API de Presse-papiers, mais il y a seulement un support pour le texte Unicode, pas d'images.Comment copier l'image d'un graphique de l'application Silverlight dans le presse-papiers?

Existe-t-il un moyen d'effectuer cette tâche sans forcer les utilisateurs à PrtSc manuellement et de les coller à d'autres applicatons?

Répondre

2

Il n'y a pas de façon simple de faire cela dans SL3. Ma recommandation serait d'utiliser un WriteableBitmap et enregistrez-le dans IsolatedStorage, puis d'inviter l'utilisateur avec une boîte de dialogue FileSave à enregistrer dans leur boîte (et ensuite ils devraient le mettre dans PowerPoint). Le seul problème avec cette boîte de dialogue dans SL3 est qu'elle ne vous permet pas de définir le type d'extension de sorte qu'ils doivent saisir l'extension PNG ou JPG. Cette opération et la PrtSc, Ctrl + P nécessitent une action de l'utilisateur en plusieurs étapes et cela est toujours un point de défaillance.

Dans SL4, il y a plus de choix - vous n'avez même pas besoin du Presse-papiers dans un SLOOB. Vous pouvez simplement utiliser AutomationFactory pour automatiser PowerPoint.

+0

je lirai au sujet AutomationFactory, je n' sais à ce sujet. SL3 n'est pas nécessaire, parce que je peux passer à SL4 facilement ... Mais SLOOB n'est pas un option! – zidane

+0

@zidane: Oui, faites aussi une recherche pour "ComAutomationFactory" - c'est ce que son nom était quand SL4 était en version bêta et il semble y avoir plus de choses AutomationFactory écrit alors. Privilages (et ne fonctionne que sur Windows) Cela peut valoir la peine d'envisager SLOOB - inviter vos utilisateurs avec des teasers comme "travailler encore plus rapidement entre cette application et PowerPoint. Installez sur votre bureau pour tous les goodies! ":) –

1

Si Vrai = HtmlPage.IsPopupWindowAllowed Alors
HtmlPage.PopupWindow (New Uri ("http://www.yourdomain.com/chartgenerator.ashx?param1=value1&param2=value2"), les options, les "nouveaux")
End If

chartgenerator.aspx peut afficher soit une image:

'indique au navigateur pour afficher en ligne

context.Response.AddHeader ("Content-Disposition", "en ligne; filename =" & FilenameWithExt)

ou afficher une Ouvrir, Enregistrer, Interrompre le dialogue: l'attachement

'indiquer au navigateur pour enregistrer plutôt que l'affichage en ligne

context.Response.AddHeader ("Content-Disposition", »; filename = » & FilenameWithExt)

cité http://vbcity.com/blogs/mike-mcintyre/archive/2010/02/28/silverlight-3-pop-up-new-browser-window.aspx