none
在MainPage的添加图片怎么在第二个页面显示 RRS feed

  • 问题

  • 在主页用图片选择器添加了图片,我想在跳转到第二页面的时候把图片也显示出来。

    //在主页的代码没错,这里只复制关键的代码

            void pc_Completed(object sender, PhotoResult e)
            {
                if (e.TaskResult == TaskResult.OK)
                {
                    BitmapImage bmpSource = new BitmapImage();
                    bmpSource.SetSource(e.ChosenPhoto);
                    Image1.Source = bmpSource;
                }
                else
                {
                    Image1.Source = null;
                }
            }

    我在第二页面添加了<Image x:Name="Image2"/>控件,那怎么才能在第二个页面显示主页添加的图片呢。

    求详细的demo,本人学生!谢了!


    • 已编辑 花生zzz 2014年12月28日 17:13
    2014年12月28日 17:13

答案

  • 你好,

    一般像这种需要传送一个Object的情况,可以创建一个静态类,在其中为需要交互的对象设置静态变量:

    public static class Helper
    {
            public static System.Windows.Media.Imaging.BitmapImage IChosenPhoto;
    }

    比如第二个页面是叫Page1.xaml, 在第一个页面后台先设置静态变量,再导航到第二个页面:

    if (e.TaskResult == TaskResult.OK)
    {
                    //MessageBox.Show(e.ChosenPhoto.Length.ToString());
    
                    //Code to display the photo on the page in an image control named myImage.
                    System.Windows.Media.Imaging.BitmapImage bmp = new System.Windows.Media.Imaging.BitmapImage();
                    bmp.SetSource(e.ChosenPhoto);
                    myImage.Source = bmp;
    
                    Helper.IChosenPhoto = bmp; //设置静态变量
    
                    this.NavigationService.Navigate(new Uri("/Page1.xaml", UriKind.RelativeOrAbsolute));
    
    }

    在Page1后台,重写OnNavigatedTo方法:

    protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
    {
                base.OnNavigatedTo(e);
    
                Image2.Source = Helper.IChosenPhoto; //设置此页面图片控件
    }


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    • 已标记为答案 花生zzz 2014年12月29日 14:49
    2014年12月29日 8:48
    版主

全部回复

  • 你好,

    一般像这种需要传送一个Object的情况,可以创建一个静态类,在其中为需要交互的对象设置静态变量:

    public static class Helper
    {
            public static System.Windows.Media.Imaging.BitmapImage IChosenPhoto;
    }

    比如第二个页面是叫Page1.xaml, 在第一个页面后台先设置静态变量,再导航到第二个页面:

    if (e.TaskResult == TaskResult.OK)
    {
                    //MessageBox.Show(e.ChosenPhoto.Length.ToString());
    
                    //Code to display the photo on the page in an image control named myImage.
                    System.Windows.Media.Imaging.BitmapImage bmp = new System.Windows.Media.Imaging.BitmapImage();
                    bmp.SetSource(e.ChosenPhoto);
                    myImage.Source = bmp;
    
                    Helper.IChosenPhoto = bmp; //设置静态变量
    
                    this.NavigationService.Navigate(new Uri("/Page1.xaml", UriKind.RelativeOrAbsolute));
    
    }

    在Page1后台,重写OnNavigatedTo方法:

    protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
    {
                base.OnNavigatedTo(e);
    
                Image2.Source = Helper.IChosenPhoto; //设置此页面图片控件
    }


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    • 已标记为答案 花生zzz 2014年12月29日 14:49
    2014年12月29日 8:48
    版主
  • 太感谢你了,我按照你的方法实现了!
    2014年12月29日 14:48