Silverlight SaveFileDialog - установить имя файла по умолчанию

В настоящее время я читаю поток по URL-адресу. И сохраняем это как файл на клиенте. Я знаю, что Silverlight 4 не поддерживает имя файла по умолчанию в SaveFileDialog.

Кто-нибудь нашел обходной путь или способ ввести FileName в Stream?

Было бы неплохо установить имя файла с помощью любого обходного пути.

Код:

    public void ClientOpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
    {
       using (var file = Save.OpenFile())
       {
           CopyStream(e.Result, file);
       } 
    }

    public static void CopyStream(Stream input, Stream output)
    {
        var buffer = new byte[8 * 1024];
        int length;
        while ((length = input.Read(buffer, 0, buffer.Length)) > 0)
        {
            output.Write(buffer, 0, length);
        }
    } 

person nivensookharan    schedule 29.11.2011    source источник
comment
Вероятно, сейчас это не сильно поможет, но Silverlight 5 SaveFileDialog поддерживает имя файла по умолчанию, поэтому, когда он будет выпущен, он решит вашу проблему.   -  person Zee    schedule 30.11.2011


Ответы (1)


SaveFileDialog dialog = new SaveFileDialog();
dialog.GetType().GetMethod("set_DefaultFileName").Invoke(dialog, new object[] { "FileName.ext" });

Работает для меня

person Ivan Marinin    schedule 18.07.2012
comment
Это сработало для меня, не меняя версию Silverlight. Спасибо gates (надеюсь, вы настоящий ;-)) - person Pradip; 26.09.2012
comment
Когда я пытаюсь сделать это в Silverlight 4. У меня появляется предупреждение системы безопасности. Ожидается ли это? - person root; 09.05.2014