Назовите OpenFileDialog Silverlight от JavaScript

Я пытаюсь вызвать функцию в компоненте Silverlight 4, чтобы открыть диалоговое окно файла и загрузить файл на сервер. Все работает хорошо в Silverlight, но я хотел бы назвать компонент от JavaScript. Таким образом, я называю обработчик нажатий кнопки от C#-function, который является [ScriptableMember]. Я получаю следующую ошибку при вызывании функции:

System.Security.SecurityException: Dialogs must be user-initiated. 
at System.Windows.Browser.ManagedObjectInfo.Invoke(ManagedObject obj, InvokeType
invokeType, String memberName, ScriptParam[] args) at
System.Windows.Hosting.ManagedHost.InvokeScriptableMember(IntPtr pHandle, Int32 nMemberID,
Int32 nInvokeType, Int32 nArgCount, ScriptParam[] pArgs, ScriptParam& pResult,
ExceptionInfo& pExcepInfo)

Я основывал свой код учебного руководства Tim Heuer, который может быть найден здесь: http://www.silverlight.net/learn/videos/silverlight-videos/openfiledialog-and-file-upload/

Я понимаю, почему ошибка брошена, вид, 'щелчок' от пользователя сделан в JavaScript и вероятно не идет до Silverlight. Для Silverlight это - просто вызов функции.

Эта новая политика от Silverlight 4? Все еще возможно только использовать Silverlight позади для экранов для загрузки файла? Любая справка ценится.

1
задан Peter Eysermans 28 April 2010 в 15:21
поделиться

1 ответ

Я считаю, что в Silverlight 2 это могло быть разрешено, но с тех пор это не так. Это было критическое изменение поведения, требующее, чтобы действие было «инициировано пользователем» посредством действия пользователя - в Silverlight: что-то вроде нажатия клавиши или щелчка мыши на кнопке с обработчиком события щелчка.

Другим способом открыть диалоговое окно файла невозможно.

2
ответ дан 3 September 2019 в 00:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: