Как скопировать изображение графика из приложения Silverlight в буфер обмена? - PullRequest
3 голосов
/ 10 мая 2010

У меня есть приложения Silverlight 3.0 с некоторой графикой и графиками. Мне нужно найти лучший способ перенести эту графику в презентацию PowerPoint.

Я читал, что Silverlight 4.0 предлагает API-интерфейс буфера обмена, но поддерживается только текст Unicode, а не изображения.

Есть ли способ выполнить эту задачу, не заставляя пользователей вручную PrtSc и затем вставлять их в другие приложения?

Ответы [ 2 ]

2 голосов
/ 13 мая 2010

Нет простого способа сделать это в SL3. Я рекомендую использовать WriteableBitmap и сохранить его в IsolatedStorage, а затем предложить пользователю с помощью FileSave Dialog сохранить его в своем окне (а затем ему придется поместить его в PowerPoint). Единственная проблема с этим диалогом в SL3 заключается в том, что он не позволяет вам установить тип расширения, поэтому им нужно будет ввести расширение PNG или JPG. И это, и PrtSc , Ctrl + P требуют многоэтапного действия пользователя, и это всегда является точкой отказа.

В SL4 есть больше вариантов - вам даже не нужен буфер обмена в SLOOB. Вы можете просто использовать AutomationFactory для автоматизации PowerPoint.

1 голос
/ 13 мая 2010

Если True = HtmlPage.IsPopupWindowAllowed Тогда
HtmlPage.PopupWindow (New Uri ("http://www.yourdomain.com/chartgenerator.ashx?param1=value1&param2=value2")," new ", параметры)
Конец, если

chartgenerator.aspx может отображать изображение:

'попросить браузер отображать встроенный

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

или отображение диалогового окна «Открыть, сохранить, отменить»:

'попросить браузер сохранять, а не отображать строку

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

цитата из http://vbcity.com/blogs/mike-mcintyre/archive/2010/02/28/silverlight-3-pop-up-new-browser-window.aspx

...