c# silverlight xaml windows-phone-8 windows-phone-8.1

c# - Usando FileOpenPicker con Silverlight



xaml windows-phone-8 (1)

Parece que uno necesita agregar manualmente un controlador de eventos a Microsoft.Phone.Shell.PhoneApplicationService.Current.ContractActivated:

Microsoft.Phone.Shell.PhoneApplicationService.Current.ContractActivated += Application_ContractActivated; private void Application_ContractActivated(object sender, IActivatedEventArgs e) { var filePickerContinuationArgs = e as FileOpenPickerContinuationEventArgs; if (filePickerContinuationArgs != null) { // Handle file here } }

Windows Phone 8.1 admite abrir archivos y guardar archivos. Quiero usar un selector de abrir archivo con un proyecto que se convirtió de WP 8 a WP 8.1 (Silverlight).

Puedo abrir FileOpenPicker de la siguiente manera:

FileOpenPicker picker = new FileOpenPicker(); picker.FileTypeFilter.Add(".txt"); picker.PickSingleFileAndContinue();

Ahora, todos los ejemplos que he encontrado usan el nuevo tiempo de ejecución universal de Windows, donde los archivos resultantes están atrapados de la siguiente manera en App.xaml.cs:

protected override void OnActivated(IActivatedEventArgs e) { ContinuationActivatedEventArgs = e as IContinuationActivatedEventArgs; if (ContinuationEventArgsChanged != null) { // Handle file here } }

El problema es que las aplicaciones convertidas de Silverlight no implementan este método. En cambio, obtuve la idea principal de otro ejemplo para las aplicaciones de Silverlight ( http://msdn.microsoft.com/en-us/library/dn655125%28v=vs.105%29.aspx ):

private void Application_Activated(object sender, ActivatedEventArgs e) { var eventArgs = e as IContinuationActivatedEventArgs; if (eventArgs != null) { // Handle file here } }

Pero esto no funciona (por ejemplo, eventArgs siempre es NULL ).

Hay otro ejemplo aquí: http://msdn.microsoft.com/en-us/library/windowsphone/develop/dn642086%28v=vs.105%29.aspx . Esto utiliza el siguiente método en la aplicación.xaml.cs:

private void Application_ContractActivated(object sender, IActivatedEventArgs e) { var filePickerContinuationArgs = e as FileOpenPickerContinuationEventArgs; if (filePickerContinuationArgs != null) { // Handle file here } }

Pero este método nunca se llama en mi aplicación.

¿Alguien tiene una pista / idea de cómo hacer que FileOpenPicker funcione con una aplicación Silverlight WP8.1?

Saludos,