2011-05-09 104 views
4

我有一个浏览器托管SL应用程序。我想要的很简单:应用程序生成一个文档(xls,doc,jpg ...),用户单击一个按钮,然后可选择出现一个对话框,他需要单击确定,然后Excel,Word,图片查看器或任何启动并打开SL应用程序创建的文档。silverlight打开文档

到目前为止,我所看到的都是不完整的解决方案。

大多数人建议弹出一个SaveFileDialog。首先,在保存之后,用户需要首先找到文件以打开它,而他通常甚至不想将它保存在第一位,只是查看它。糟糕的UX。

另一种可能的解决方案是将文件保存在独立存储中,并使用COM interop启动Excel。但是我相信在浏览器主机中没有COM互操作,COM互操作依赖于平台。我的SL应用程序也适用于Moonlight。

然后其他人建议将浏览器从SL重定向到文档的HTTP位置。这可以工作,但这并不能真正解决我的问题,因为那时我需要将文档以某种方式放在服务器上。

任何人都知道一个真正的解决方案?这里也可以接受'否'作为答案。

回答

3

确切的答案是:不。您真正想从浏览器主机中执行的操作会违反我们对Silverlight插件的期望。

即将到来的Silverlight 5会向您的要求方向发展,允许系统管理员使用组策略将授权行为授予某些运行浏览器的xp,但此解决方案是否会延伸到月光(以及是否会发生这种情况)是任何人的猜测。

可能值得您考虑的一些问题,为什么在客户端上运行的Silverlight应用程序负责生成文档?这仅仅是出于可扩展性的原因吗?如果不是为什么将文档生成代码移动到服务器?

0

如果文件被保存在服务器端那么我们可以使用下面的代码

​​ 打开该文件