在WPF中使用pack Uri从代码访问资源图像文件失败

4

我希望能够以编程方式访问我的应用程序中的一些图像资源。

现在,我基于一些源代码,所以我需要通过 Uri 访问,因此我的代码是:

new BitmapImage(new Uri("pack://application:,,,/YearBook;component/Resources/Output/" + i.ToString() + ".jpg", UriKind.RelativeOrAbsolute));

虽然名称正确,但我尝试访问它时出现资源未找到的错误。有人知道为什么吗?
编辑:可能需要在程序集文件中添加一些组件?

您需要提供更多信息。程序集“YearBook”是否可用?图像是作为“资源”还是“嵌入式资源”嵌入到程序集中的?(只有其中之一是正确的,不确定是哪一个。)程序集“YearBook”是否位于可执行文件所在的同一文件夹中(或者在子文件夹“YearBook”中)? - Vlad
全部同意,并且这是一个资源。 - eric.itzhak
2个回答

4
最终,在尝试了多种方式后,我的问题是:我忘记了子文件夹中的一个文件夹。下面的代码最终起作用了:
new BitmapImage(new Uri("pack://application:,,,/Resources/Images/Output/" 
+ i.ToString() + ".jpg", UriKind.Absolute)));

0
StreamResourceInfo resource = Application.GetResourceStream(
new Uri("SilverlightApp1;component/embedded.png", UriKind.Relative));

SilverlightApp1 是程序集名称,component 是关键字。您将获取您的资源,然后将其强制转换为适当的类型,希望这有所帮助。


最终需要的是BitmapImage,我尝试将bmp的流设置为程序集中的流,但无法正常工作,获取资源的URI会更容易,如何进行强制转换?顺便说一下,当我尝试您的代码时,我也遇到了相同的错误。 - eric.itzhak

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接