【发布时间】:2014-09-12 21:26:34
【问题描述】:
我正在使用适用于 Windows 通用应用程序的 FilePicker,并尝试从 MainPage.xaml 启动文件选择器,然后导航到其他页面 (LoadPhoto.xaml) 以呈现所选图像。
我最初实现了我的应用程序,以便导航到 LoadPhoto.xaml,然后,作为加载页面的一部分,我将调用文件选择器。但是,这会在恢复应用程序时引起问题,因此我将 File Picker 调用移出构造函数。
在最新的实现中,我从 MainPage.xaml 调用文件选择器,然后,如果选择了一张照片,则导航到 LoadPhoto.xaml。但是,某处似乎存在竞争条件:有时,应用程序在选择图片后停留在 MainPage 上(看起来它实际上正在导航到 LoadPhoto 页面,但某些东西使 Frame 回到了 MainPage)。其他时候,应用程序成功导航到 LoadPhoto 页面并呈现图像,但如果我使用返回按钮返回,然后再次按下 Pick photo 按钮,FilePicker 会短暂显示,然后应用程序崩溃。此行为不会在附加 VS 的情况下重现。在调试模式下执行时一切正常。
我认为根本原因是ContinueFileOpenPicker 代码是从工作线程执行的,所以我不应该从该线程调用this.Frame.Navigate(typeof(LoadPhoto), file);。该调用应该从主线程进行,但我不知道该怎么做。
很遗憾,这并不能解决问题:await CoreWindow.GetForCurrentThread().Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => { this.Frame.Navigate(typeof(LoadPhoto), file); });
如何从 ContinueFileOpenPicker 方法导航到不同的页面?带有repro的完整代码是here。
【问题讨论】:
标签: c# xaml windows-phone-8.1 win-universal-app filepicker