【问题标题】:Calling FileOpenPicker in OnNavigatedTo works only on Win 10 on PC but not on Win 10 Mobile在 OnNavigatedTo 中调用 FileOpenPicker 仅适用于 PC 上的 Win 10,但不适用于 Win 10 Mobile
【发布时间】:2019-10-25 14:13:08
【问题描述】:
在 UWP 应用中,我想在导航到页面时提示用户选择文件。
我正在覆盖页面中的方法OnNavigatedTo 并从中调用选择器。它在PC上运行没有问题。但是当我在装有 Windows 10 Mobile (Lumia 640) 的移动设备上运行它时,它就不起作用了!
只是为了测试一下,如果我调用 CameraCaptureUI 而不是 FileOpenPicker,它在 PC 和移动设备上都可以正常工作!
【问题讨论】:
标签:
uwp
win-universal-app
windows-10-universal
【解决方案1】:
在 OnNavigatedTo 中调用 FileOpenPicker 仅适用于 PC 上的 Win 10,但不适用于 Win 10 Mobile
问题在于移动设备是低性能设备。在导航方法之后立即调用选择器将导致设备无响应。因此,您可以在调用 piker 之前添加任务延迟,如下所示
protected async override void OnNavigatedTo(NavigationEventArgs e)
{
base.OnNavigatedTo(e);
await Task.Delay(100);
FileOpenPicker openPicker = new FileOpenPicker();
openPicker.ViewMode = PickerViewMode.Thumbnail;
openPicker.SuggestedStartLocation = PickerLocationId.PicturesLibrary;
openPicker.FileTypeFilter.Add(".jpg");
StorageFile file = await openPicker.PickSingleFileAsync();
if (file != null)
{
}
else
{
}
}