在我的silverlight汇编中,我有几张图片作为资源。要访问它们,我使用以下语法:
/ASSEMBLY_NAME;component/PATH_TO_MY_IMAGE.png
我正在从代码隐藏创建BitmapImages,我希望能够在运行时知道给定的图像路径是否作为程序集上的资源存在,以便我可以决定是否使用该图像或默认图像(我知道永远存在。)
有没有办法实现这个目标? - 反思? - 尝试实例化BitmapImage并检查是否有错误?
非常感谢, 布鲁诺
答案 0 :(得分:2)
Application.GetResourceStream(new Uri("/ASSEMBLY_NAME;component/PATH_TO_MY_IMAGE.png"));
如果文件存在,这将返回StreamResourceInfo,如果不存在则返回null。
或者,如果资源不存在,StreamResourceInfo上的'Stream'可能为null - 我编写代码来执行此操作,但它是在不久之前所以我不记得确切。虽然这并不难,所以我怀疑你是否会遇到问题。
答案 1 :(得分:0)
也许它不是Silverlight所需要的东西,但不要忘记pack:// application:,,,
Application.GetResourceStream(new Uri(“pack:// application:,,,”+“/ ASSEMBLY_NAME; component / PATATH_TO_MY_IMAGE.png”));
如果资源不存在,则会触发IOException