如何为图像驻留在应用程序文件夹中的图像控件设置源

How to set source for Image Control where the image resides in application folder

我正在使用图像控件。我正在为图像控件设置源,如下所示。

但是错误显示无效的 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;
    }

您必须通过设置 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.