C# Windows phone空映像错误
我正在为windows phone开发一个应用程序,它基本上包括手机联系人。我使用contacts类获取所有电话联系人,并将联系人数据存储在独立存储器中。因为我无法序列化图像,所以在序列化之前我将它们转换为字节[]。我的代码是:C# Windows phone空映像错误,c#,wpf,xaml,windows-phone-8,C#,Wpf,Xaml,Windows Phone 8,我正在为windows phone开发一个应用程序,它基本上包括手机联系人。我使用contacts类获取所有电话联系人,并将联系人数据存储在独立存储器中。因为我无法序列化图像,所以在序列化之前我将它们转换为字节[]。我的代码是: foreach(e.Results中的var结果) { if(result.PhoneNumbers.FirstOrDefault()!=null) { BitmapImage bmp2=新的BitmapImage(); bmp2.SetSource(result.Ge
foreach(e.Results中的var结果)
{
if(result.PhoneNumbers.FirstOrDefault()!=null)
{
BitmapImage bmp2=新的BitmapImage();
bmp2.SetSource(result.GetPicture());
添加(新地址簿()
{
FirstName=result.DisplayName??“”,
imageBytes=AddressBook.imageConvert(bmp2),
电子邮件地址=”,
LastName=“”,
Phone=result.PhoneNumbers.FirstOrDefault().PhoneNumber??“”,
});
}
}
当联系人没有图片时,会在行上显示参数null异常错误:
bmp2.SetSource(result.GetPicture());
所以当联系人图像为空时,我想使用一些自定义图像(“/Images/ci2.png”或任何空白图像也可以)。
我的xaml代码是:
我的问题是,我如何使用自定义图像时
bmp2.SetSource(result.GetPicture());
是空的吗?谢谢快速查看此内容,您能不能:
if (result.GetPicture() != null)
{
bmp2.SetSource(result.GetPicture());
}
else
{
bmp2.SetSource(Application.GetResourceStream(new Uri(@"Images/ci2.png", UriKind.Relative)).Stream);
}
如果没有,我已经为此实施了一个不同的解决方案,并且可能会发布一些更详细的信息。快速查看这一点,您就不能:
if (result.GetPicture() != null)
{
bmp2.SetSource(result.GetPicture());
}
else
{
bmp2.SetSource(Application.GetResourceStream(new Uri(@"Images/ci2.png", UriKind.Relative)).Stream);
}
如果没有,我已经为此实现了一个不同的解决方案,并且可能会发布一些更详细的信息。我发现了两个问题
<Ellipse.Fill>
<ImageBrush Stretch="Fill" ImageSource="{Binding imageByte, Converter={StaticResource BytesToImageConverter}}"/>
</Ellipse.Fill>
imageBytes!=imageByte
除非你没有显示完整的代码
就像另一张海报所说的,从资源文件中设置它。他的代码将导致错误,因为它包含一个额外的“/”,所以将其更改为
if (result.GetPicture() != null)
{
bmp2.SetSource(result.GetPicture());
}
else
{
bmp2.SetSource(Application.GetResourceStream(new Uri(@"Images/ci2.png", UriKind.Relative)).Stream);
}
我看到两个问题
<Ellipse.Fill>
<ImageBrush Stretch="Fill" ImageSource="{Binding imageByte, Converter={StaticResource BytesToImageConverter}}"/>
</Ellipse.Fill>
imageBytes!=imageByte
除非你没有显示完整的代码
就像另一张海报所说的,从资源文件中设置它。他的代码将导致错误,因为它包含一个额外的“/”,所以将其更改为
if (result.GetPicture() != null)
{
bmp2.SetSource(result.GetPicture());
}
else
{
bmp2.SetSource(Application.GetResourceStream(new Uri(@"Images/ci2.png", UriKind.Relative)).Stream);
}
谢谢你的回复。上面的方法不起作用,然后我删除了除bmp2.SetSource(Application.GetResourceStream(newURI(@/Images/ci2.png),UriKind.Relative)).Stream)之外的所有代码;}。但我还是犯了同样的错误。看起来这条线一点效果都没有。还有什么建议吗?当我在手机上部署它时,它抛出了一个错误:“system.outofMemoryException”有什么想法吗?在我的脑海中-可能是你的图像转换器代码,但我也会检查ci2.png是否部署到了设备上,是否在正确的位置。你在用什么设备?它是低端的吗?是的,我使用的是低端设备,可能这就是为什么它在我的模拟器上运行良好,但在我的手机上运行不好。有什么方法可以避免这个异常吗?提示-让IsoStoreSpy查看设备上有哪些文件:谢谢你的回复。上面的方法不起作用,然后我删除了除bmp2.SetSource(Application.GetResourceStream(newURI(@/Images/ci2.png),UriKind.Relative)).Stream)之外的所有代码;}。但我还是犯了同样的错误。看起来这条线一点效果都没有。还有什么建议吗?当我在手机上部署它时,它抛出了一个错误:“system.outofMemoryException”有什么想法吗?在我的脑海中-可能是你的图像转换器代码,但我也会检查ci2.png是否部署到了设备上,是否在正确的位置。你在用什么设备?它是低端的吗?是的,我使用的是低端设备,可能这就是为什么它在我的模拟器上运行良好,但在我的手机上运行不好。有什么方法可以避免这个异常吗?一个提示-让IsoStoreSpy看看设备上有什么文件:@Chubosaurus软件谢谢它工作了,但是当我在手机上部署它时,它抛出了一个错误:“system.outofMemoryException”@Chubosaurus软件谢谢它工作了,但是当我在手机上部署它时,它抛出了一个错误:“system.outofMemoryException”