目前的Silverlight 5.0版本仅支持png、jpg格式图片,显示bmp等其他格式图片时,可以采取首先在后台将图片转换,然后通过wcf传送给sl的方式,这样sl中显示图片的位置也不再受限于ClientBin,后台的转换方法:
Image image = Image.FromFile(...);
if (imageObj != null)
{
MemoryStream ms = new MemoryStream();
imageObj.Save(ms, ImageFormat.Png);
ImageStream = ms.ToArray();
ms.Close();
}
将字节数组imageStream传给silverlight,以下为Silverlight中显示图片
ImageSource = new BitmapImage();
ImageSource.SetSource(new MemoryStream(obj.ImageStream));
//CurImage即Image对象
CurImage.Stretch = Stretch.Fill;
CurImage.Source = ImageSource;