如何设置图像控制的源,其中图像位于应用程序文件夹中

时间:2015-02-25 10:41:43

标签: c# wpf .net-4.5

我正在使用图像控件。我正在设置像下面的图像控制源。

但错误显示无效的URI。

 string strUri = String.Format(@"..\..\Assets\Images\Image001.jpeg"); 
  previewImage.Source = BitmapFromUri(new Uri(strUri));

 public static ImageSource BitmapFromUri(Uri source)
    {
        var bitmap = new BitmapImage();
        bitmap.BeginInit();
        bitmap.UriSource = source;
        bitmap.CacheOption = BitmapCacheOption.OnLoad;
        bitmap.EndInit();
        return bitmap;
    }

1 个答案:

答案 0 :(得分:1)

您必须通过设置UriKind.Relative来指定它是相对URI:

var uri = new Uri(@"..\..\Assets\Images\Image001.jpeg", UriKind.Relative);

也就是说,您的BitmapFromUri方法可能是多余的(除非您有理由设置BitmapCacheOption.OnLoad)。您可能也可以使用带有Uri参数的BitmapImage构造函数:

previewImage.Source = new BitmapImage(uri);

另请注意,上述内容假定图像文件实际上已复制到指定的相对路径。如果它是Visual Studio项目的一部分,则最好通过WPF Pack URI将其作为嵌入式资源加载。因此,您必须将其Build Action设置为Resource