在UWP App中,当导航到页面时,我想提示用户选择文件。
我将重写页面中的方法OnNavigatedTo
,并从中调用选择器。它可以在PC上正常工作。但是,当我在装有Windows 10移动版(Lumia 640)的移动设备上运行它时,它不起作用!
只是测试,如果我叫CameraCaptureUI
而不是FileOpenPicker
,则在PC和Mobile上都可以正常工作!
在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 { } }