Я делаю приложение для редактирования фотографий, и у меня есть ImageEditor.xaml.cs
. Как заставить эту страницу вести себя как FileOpenPicker
, которая может возвращать значения в коллекцию после того, как FileOpenPicker
будет сделан выбор нужных файлов? Или это невозможно? Если да, то как мне сделать Mainpage.xaml.cs
перейти и ждать, пока ImageEditor.xaml.cs
не отредактирует отредактированную фотографию, чтобы Mainpage
получил значение?Подождите, пока страница вернет значение
ответ
Если да, то как я могу сделать Mainpage.xaml.cs перемещаться и ждать, пока ImageEditor.xaml.cs не вернет отредактированную фотографию, чтобы Mainpage могла получить значение?
Поскольку вы не указали, что используете какой-либо шаблон для разработки, я предполагаю, что вы используете стандартный UWP Apis.
Тогда, довольно простой способ сделать это - после получения отредактированного изображения, непосредственно перейдите к своему MainPage
с этим изображением в качестве навигационного параметра, используя Frame.Navigate(TypeName, Object) method. После этого вы можете переопределить OnNavigatedTo
из ваших MainPage
так же, как это:
protected override async void OnNavigatedTo(NavigationEventArgs e)
{
//get e.Parameter
}
Для официальной демонстрации, вы можете обратиться к Pass information between pages.
Если вы использовали шаблон как Template 10
для разработки приложения UWP, тогда обычно у них есть свой собственный NavigationService
и способ навигации, но обычно в этих методах может использоваться параметр navi.
Как заставить эту страницу вести себя как FileOpenPicker, которая может возвращать значения в коллекцию после того, как FileOpenPickeris выполнил выбор необходимых файлов?
В качестве дополнительной информации для этого случая, дело здесь получить результат другого экземпляра в том же процессе до навигации, это не совсем так FileOpenPicker
, FileOpenPicker
фактически использует систему брокера, чтобы разорвать песочницу UWP приложения , он получает результат от другого процесса. Во всяком случае, использование навигации с параметром уже может решить вашу проблему, я думаю.