仅当文件包含在项目中时才显示图像

时间:2014-07-15 12:07:45

标签: wpf image xaml converter

我有一个wpf应用程序,我在其中使用转换器来设置图像源。这是代码:

<UserControl.Resources>
    <converters:ImageSourceConverter x:Key="ImageSourceConverter"/>
</UserControl.Resources>

<Image Source="{Binding Path=MyItem.MyItemId, Converter={StaticResource ImageSourceConverter}, ConverterParameter=MyItems}" Width="150" Height="150"></Image>

和C#代码:

public class ImageSourceConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        return String.Concat(@"..\Images\" + System.Convert.ToString(parameter) + "\\", System.Convert.ToString(value).Trim(), ".png");
    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        return value;
    }
}

当图像包含在我的项目中时,这是有效的。这还不够好。将来,用户将上传图像,但我不能将所有图像都包含在项目中。即使解决方案中不包含.png文件,如何才能显示图像?

2 个答案:

答案 0 :(得分:0)

如果您的Images文件夹位于应用程序目录中,则在值转换器中尝试将Image URI构建为

System.AppDomain.CurrentDomain.BaseDirectory + @"\Images\" + System.Convert.ToString(parameter) + "\\", System.Convert.ToString(value).Trim(), ".png");

答案 1 :(得分:0)

要完成此操作,首先您必须确定要保留图像的位置,以便您的应用程序可以访问这些图像,并且将来用户也可以将图像上传到此位置。

如果您使用上传文件夹的绝对路径,并且仅从那里访问所有图像,那将会更好。