Windows Phone 8 ImageSource无法序列化共享图像时出错

时间:2014-01-24 14:23:18

标签: windows-phone-8

我正在尝试分享图片。我有一个图片对象,我正在从中获取路径。当我调用ShareMediaTask时,它会抛出以下错误:

System.Windows.Media.ImageSource无法序列化。

我仍然可以分享图像,但是从共享返回时应用程序崩溃了。

这是我的代码:

        PictureModel picture = Singleton.Instance.BearPicture.Model.Images.Where(PictureModel => PictureModel.Bmp.UriSource == (Image_View.Source as BitmapImage).UriSource).FirstOrDefault();


        var task = new ShareMediaTask();


        task.FilePath = picture.Picture.GetPath();

        task.Show();

我的PictureModel看起来像这样:

 public class PictureModel : INotifyPropertyChanged
{
    public event PropertyChangedEventHandler PropertyChanged;

    private string _uri;
    public string Uri
    {
        get { return _uri; }
        set
        {
            if (value != _uri)
            {
                _uri = value;
                NotifyPropertyChanged("Uri");
            }
        }
    }

    private string _relativePath;
    public string RelativePath
    {
        get { return _relativePath; }
        set
        {
            if (_relativePath != value)
            {
                _relativePath = value;
                NotifyPropertyChanged("RelativePath");
            }
        }
    }

    private BitmapImage _bmp;
    public BitmapImage Bmp
    {
        get { return _bmp; }
        set
        {
            if (value != _bmp)
            {
                _bmp = value;
                NotifyPropertyChanged("Bmp");
            }
        }
    }

    private Picture _picture;
    public Picture Picture
    {
        get { return _picture; }
        set
        {
            if (value != _picture)
            {
                _picture = value;
                NotifyPropertyChanged("Picture");
            }
        }
    }

    private void NotifyPropertyChanged(string propertyName)
    {
        if (PropertyChanged != null)
        {
            PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
        }

    }

}

此错误来自哪里?我只获取了我的图像对象的来源,但我没有做任何其他事情。我的照片也保存在媒体库中,如下所示:

  myFileStream = myStore.OpenFile(fileName, FileMode.Open, FileAccess.Read);
            MediaLibrary library = new MediaLibrary();
            Picture pic = library.SavePicture(fileName, myFileStream);

在Appstart上搜索我的savedpicture文件夹,获取图片对象,然后保存在我的PictureModel中。

感谢任何帮助。 提前致谢。 robidd

1 个答案:

答案 0 :(得分:1)

这可能有所帮助:Crashes Back (WriteableBitmap cannot be serialized) windows phone 8。请参阅KooKiz的评论。

"症状相同,原因相同。您已经在某个时刻存储了手机状态的ImageSource(可能是PhoneApplicationService.Current.State或IsolatedStorageSettings.ApplicationSettings)。你必须找到哪里!"

显然我们可以间接导致此错误。我遇到了类似的问题,我找到了答案,也找到了你自己的问题。

希望它有所帮助。 欢呼声。