【发布时间】:2009-08-30 22:25:31
【问题描述】:
我正在使用 C# 开发 Silverlight 3 应用程序。我想允许用户从 Silverlight 应用程序下载图像。我正在使用 SaveFileDialog 执行文件下载任务。流程是这样的:
- 用户单击 SL 应用程序中的下载按钮。
- 调用 Web 服务以从服务器获取图像
- Web 方法调用的 OnCompleted 异步事件处理程序被调用并从服务器接收二进制图像
- 在 OnCompleted 事件处理程序中,SaveFileDialog 提示用户将图像保存到计算机。
- 将图像流式传输到用户硬盘上的文件。
我在从 OnCompleted 事件处理程序调用的函数中使用以下代码来完成 SaveFileDialog 提示,然后流式传输到文件。
SaveFileDialog dialog = new SaveFileDialog();
dialog.Filter = "JPG Files|*.jpg" + "|All Files|*.*";
bool? dialogResult = dialog.ShowDialog();
if (dialogResult == true)
{
using (Stream fs = (Stream)dialog.OpenFile())
{
fs.Write(e.Result, 0, e.Result.Length);
fs.Close();
}
}
SaveFileDialog 会抛出错误“对话框必须由用户启动”。在上述代码中调用 ShowDialog 方法时。我可能在这里缺少什么?如何克服?
【问题讨论】:
标签: c# .net silverlight-3.0