Silverlight中检查文件的存在方式

本文关键字:存在 方式 文件 检查 Silverlight | 更新日期: 2023-09-27 17:58:40

如果图像不存在或返回空new BitmapImage(new Uri("http://upload.wikimedia.org/wikipedia/commons/1/1c/No-Symbol.png")),我需要转换器否则,如果文件存在,则返回文件。

pathImage-示例http://localhost:65051/ClientBin/images/sm_butter_cake.jpg

文件。Exists-总是返回false。为什么?

public class ConvertNullImage : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            try
            {
                string pathImage = Application.Current.Host.Source.AbsoluteUri.Substring(0, 
                    Application.Current.Host.Source.AbsoluteUri.LastIndexOf("/"));
                if (File.Exists(pathImage + value.ToString()))
                {
                    var image = new BitmapImage(new Uri(value.ToString(), UriKind.Relative));
                    return image;
                }
                else
                {
                    throw new Exception("Not file");
                }
            }
            catch { return new BitmapImage(new Uri("http://upload.wikimedia.org/wikipedia/commons/1/1c/No-Symbol.png")); }
        }
        public object ConvertBack(object value, Type targetType, object parameter,
                                  CultureInfo culture)
        {
            throw new NotImplementedException();
        }
    }

Silverlight中检查文件的存在方式

文件。Exists无法通过HTTP工作,请尝试使用此处的解决方案

http://social.msdn.microsoft.com/Forums/en-US/asmxandxml/thread/95851d08-452b-4f32-b03a-206dec5c8095/

需要使用事件ImageFailed。

示例:

<Image MaxHeight="50" x:Name="image" Source="{Binding photo}">
    <i:Interaction.Triggers>
        <i:EventTrigger EventName="ImageFailed">
        <ei:ChangePropertyAction PropertyName="Source">
            <ei:ChangePropertyAction.Value>
            <ImageSource>
                /images/noimage.png
            </ImageSource>
            </ei:ChangePropertyAction.Value>
        </ei:ChangePropertyAction>
        </i:EventTrigger>
    </i:Interaction.Triggers>
</Image>

来源,但这个俄罗斯博客