Silverlight открытый документ - PullRequest
4 голосов
/ 09 мая 2011

У меня есть приложение SL, размещенное в браузере.То, что я хотел бы, это просто: приложение генерирует документ (xls, doc, jpg ...), пользователь нажимает кнопку, затем, при желании, появляется диалоговое окно, где ему нужно нажать «ОК», затем Excel, Word, изображение.Средство просмотра или что-то еще запускается и открывает документ, созданный приложением SL.

То, что я видел до сих пор, - это неполные решения.

Большинство людей предлагают открыть SaveFileDialog.Прежде всего, после сохранения пользователю необходимо сначала найти файл, чтобы открыть его, и он обычно даже не хочет сохранять его в первую очередь, просто просматривает его.Bad UX.

Другое возможное решение - сохранить файл в изолированном хранилище и запустить Excel с COM-взаимодействием.Но я считаю, что в хосте браузера нет COM-взаимодействия, а COM-взаимодействие очень зависит от платформы.Мое приложение SL также должно работать с Moonlight.

Тогда другие предлагают перенаправить браузер с SL на HTTP-местоположение документа.Это может сработать, но это не решит мою проблему, потому что тогда мне нужно как-то поместить документ на сервер.

Кто-нибудь знает реальное решение?Здесь также можно принять «нет» в качестве ответа.

Ответы [ 2 ]

3 голосов
/ 09 мая 2011

Окончательный ответ: нет.То, что вы действительно хотите сделать с хоста в браузере, нарушит безопасность, которую мы ожидаем от плагина Silverlight.

Предстоящий Silverlight 5 в некоторой степени отвечает вашим требованиям, позволяющим системным администраторам использовать групповую политику для предоставления доверенного поведениянекоторые xaps, которые запускают inbrowser, но будет ли это решение распространяться на лунный свет (и если когда-нибудь, когда это произойдет), можно только догадываться.

Некоторые вопросы, которые могут стоить задуматься, почему это ответственность приложения Silverlightработает на клиенте для генерации документа?Это просто из соображений масштабируемости?Если нет, зачем переносить код генерации документа на сервер?

0 голосов
/ 25 апреля 2012

Если файл сохранен на стороне сервера, мы можем открыть этот файл, используя следующий код

string uri = HtmlPage.Document.DocumentUri.ToString();
uri = uri.Remove(uri.LastIndexOf('#'), uri.Length - uri.LastIndexOf('#'));
uri=uri.Remove(uri.LastIndexOf('/'));
System.Windows.Browser.HtmlPage.PopupWindow(new Uri(uri + "/FolderName/filenamewithextension"), "_blank", null);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...