我正在尝试分享图片。我有一个图片对象,我正在从中获取路径。当我调用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
答案 0 :(得分:1)
这可能有所帮助:Crashes Back (WriteableBitmap cannot be serialized) windows phone 8。请参阅KooKiz的评论。
"症状相同,原因相同。您已经在某个时刻存储了手机状态的ImageSource(可能是PhoneApplicationService.Current.State或IsolatedStorageSettings.ApplicationSettings)。你必须找到哪里!"
显然我们可以间接导致此错误。我遇到了类似的问题,我找到了答案,也找到了你自己的问题。
希望它有所帮助。 欢呼声。