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,