Я работаю над приложением Silverlight 3 с C #. Я хотел бы разрешить пользователю загружать изображения из приложения Silverlight. Я использую SaveFileDialog для выполнения задачи загрузки файла. Поток идет следующим образом:
- Пользователь нажимает кнопку «Загрузить» в приложении SL.
- вызов веб-службы для получения изображения с сервера
- 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 в приведенном выше коде. Чего мне здесь не хватает? Как это побороть?