我正在创建一个模拟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没有显示任何内容,甚至没有出现图像错误或不存在时出现的十字。
答案 0 :(得分:0)
我认为问题是File.Exists使用文件系统,而BitmapImage上的相对Uri试图从应用程序资源中加载图像,
因此您必须指定一个绝对Uri。
您可以做这样的事情
new BitmapImage(new Uri(Directory.GetCurrentDirectory() + @"\Assets\Icons\" + this.IconName, UriKind.Absolute));