将从当前页面的文件中拾取的图像传递到UWP 10上的导航页面

时间:2015-08-22 11:41:02

标签: c# xaml windows-phone win-universal-app uwp

我正在使用Windows通用应用程序10(c#/ xaml),我创建了一个“NavigationContext”类来将数据从页面传递到另一个页面,但我不确定如何传递图像(从文件中选取)到另一页。

private async void tt3_Tapped(object sender, Windows.UI.Xaml.Input.TappedRoutedEventArgs e)
              {  openPicker.ViewMode = PickerViewMode.Thumbnail;
                openPicker.SuggestedStartLocation = PickerLocationId.PicturesLibrary;
                openPicker.FileTypeFilter.Add(".jpg");
                openPicker.FileTypeFilter.Add(".jpeg");
                openPicker.FileTypeFilter.Add(".png");
                StorageFile file = await openPicker.PickSingleFileAsync();
                if (file != null)
                {var stream = await file.OpenAsync(Windows.Storage.FileAccessMode.Read);
                    var bitmapImage = new Windows.UI.Xaml.Media.Imaging.BitmapImage();
                    await bitmapImage.SetSourceAsync(stream);
                    img.Source = bitmapImage;
                    var decoder = await Windows.Graphics.Imaging.BitmapDecoder.CreateAsync(stream); }}

点击事件以导航到下一页并传递数据

private void fw_Click(object sender, RoutedEventArgs e)
        {
            NavigationContext nav = new NavigationContext()
            {
                 Latitude = lat.Text;
                //code to pass image
            };
            Frame.Navigate(typeof(Description), nav);}

我应该把什么放在navigationcontext类上?

class NavigationContext
    {
        public String Latitude { get; set; }
        // image attributes
    }

1 个答案:

答案 0 :(得分:0)

最安全的做法是在上下文中传递StorageFile对象并在目标页面上执行图像处理。或者,使用FileIO.ReadAsync从文件中提取数据,然后传递。这样你就可以按照自己的意愿重复使用它。