我有一个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文件,如何才能显示图像?
答案 0 :(得分:0)
如果您的Images文件夹位于应用程序目录中,则在值转换器中尝试将Image URI构建为
System.AppDomain.CurrentDomain.BaseDirectory + @"\Images\" + System.Convert.ToString(parameter) + "\\", System.Convert.ToString(value).Trim(), ".png");
答案 1 :(得分:0)
要完成此操作,首先您必须确定要保留图像的位置,以便您的应用程序可以访问这些图像,并且将来用户也可以将图像上传到此位置。
如果您使用上传文件夹的绝对路径,并且仅从那里访问所有图像,那将会更好。