图片存在但不显示

时间:2018-11-28 14:07:18

标签: c# wpf

我正在创建一个模拟Windows桌面的应用程序。我的资产文件夹包含一个Icons文件夹,其中包含所有都设置为“ Content”的各种.ico图标。当我构建程序时,资产文件夹也将复制其中所有的.ico。

它使用XML创建桌面视图,我刚刚添加了功能,以便任何人都可以添加自己的图标。

但是,我在编译阶段(构建之后)添加的图标似乎是C#找到的,并且不会吐出任何错误,但是在实际视图中看不到任何东西。发生什么事了?

这是我的代码:

if (File.Exists("assets/icons/" + this.IconName))
        {
            bitmapImage = new BitmapImage(new Uri(@"\Assets\Icons\" + this.IconName, UriKind.Relative));
        }
        else
        {
            bitmapImage = new BitmapImage(new Uri(@"\Assets\Icons\error.ico", UriKind.Relative));
        }

这是视图的图像,您可以看到DME没有显示任何内容,甚至没有出现图像错误或不存在时出现的十字。

Desktop View

1 个答案:

答案 0 :(得分:0)

我认为问题是File.Exists使用文件系统,而BitmapImage上的相对Uri试图从应用程序资源中加载图像, 因此您必须指定一个绝对Uri。

您可以做这样的事情

new BitmapImage(new Uri(Directory.GetCurrentDirectory() + @"\Assets\Icons\" + this.IconName, UriKind.Absolute));