Silverlight中来自服务器的图像问题

时间:2010-10-20 09:10:04

标签: .net visual-studio-2010 silverlight-4.0

尝试显示图片时出现问题。 在我的项目中,我有一个类女巫有一个“公共字符串图像”属性。 我有一个网络服务器localy wich返回我一个类的集合。当我在Image atribute中查看调试模式时,它会向我显示corect url(如果我在浏览器中粘贴url它会向我显示图像)但是图像不会显示。相反,如果我从互联网上的图像中放入任何网址,它会向我显示图像。 我不明白为什么来自本地服务器的图像没有显示在silverlight应用程序中,但是在浏览器中它是。 Silverlight中使用的代码是:

<Image Name="photoImage" Source="{Binding Image}" Margin="30,10,30,10" />

感谢。

1 个答案:

答案 0 :(得分:1)

尝试使用此转换器:

public class RelativeImageSourceConverter : IValueConverter
{

    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        if (value == null) { return null; }
        var originalString = value.ToString();
        if (!Uri.IsWellFormedUriString(originalString, UriKind.RelativeOrAbsolute)) { return null; }
        var imageUri = new Uri(originalString, UriKind.RelativeOrAbsolute);
        if (!imageUri.IsAbsoluteUri)
        { 
            var hostUri = Application.Current.Host.Source;
            imageUri = new Uri(hostUri, originalString);
        }
        var image = new BitmapImage(imageUri);
        return image;
    }

    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}