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

标签 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;
    }

最佳答案

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

关于c# - 如何为图像驻留在应用程序文件夹中的图像控件设置源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28716864/

相关文章:

c# - 具有很多 if else block 的功能。这些可以去掉吗

c# - 如何在窗口上设置图标

c# - 像在 Visual Studio 中一样标记滚动条

c# - 使用 SendGrid SMTP 电子邮件提交时出现 Bad Request 错误

.net-4.0 - 如何检查方法是否已内联?

C# 静态方法内联

c# - 扩展方法的有效权重(在设计时、运行时等)

c# - 在纯文本中查找 url 并插入 HTML A 标记

c# - 获取使用 asp 注册的脚本引用列表 :ScriptManager

c# - 具有 maxlength 属性的文本框的工具提示