Я работаю над приложением 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 в приведенном выше коде. Что я мог здесь упустить? Как это побороть?