相关疑难解决方法(0)

根据URI检测WPF资源是否存在

给定一个pack:// URI,什么是判断编译资源(例如,使用"资源"的构建操作编译的PNG图像)是否实际存在于该URI的最佳方式?

经过一些磕磕绊绊之后,我想出了这个代码,它有效,但很笨拙:

private static bool CanLoadResource(Uri uri)
{
    try
    {
        Application.GetResourceStream(uri);
        return true;
    }
    catch (IOException)
    {
        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

(请注意,Application.GetResources文档是错误的 - 如果找不到资源,它会抛出异常,而不是像文档错误状态那样返回null.) (文档已经更正,请参阅下面的注释)

我不喜欢捕获异常以检测预期(非异常)结果.此外,我实际上并不想加载流,我只是想知道它是否存在.

有没有更好的方法来实现这一点,可能使用较低级别的资源API - 理想情况下没有实际加载流并且没有捕获异常?

wpf resources pack-uri

13
推荐指数
1
解决办法
6634
查看次数

检查资源文件是否存在

我在visual studio的项目文件夹中有一个图像文件,它被设置为构建动作"资源",因此它包含在我的exe文件中.我可以在xaml链接到这个文件没问题,例如<.Image Source ="images/myimage.png">它可以工作.

但是如果我尝试使用File.exists("images/myimage.png")检查文件的存在,它总是返回false.我在这做错了什么?

c# wpf

8
推荐指数
1
解决办法
9934
查看次数

标签 统计

wpf ×2

c# ×1

pack-uri ×1

resources ×1