xaml 中的图像源路径是什么意思?

What do image source paths mean in xaml?

我正在查看我在 Visual Studio 中从事的项目的源代码,WPF window XAML 中的路径看起来很奇怪。例如,window 元素的图标成员如下所示:Icon="/ProjectName;component/icons/ProjectName.ico"

首先,分号是什么意思?这是否表明两条可能的路径?这没有意义。

我猜 ProjectName;component 代表一个路径,因为我的项目中没有 component 文件夹。在我的项目文件夹中,icons/ProjectName.ico 是图标所在的位置。

这是什么意思?

该 URI 表示图像文件作为内容包含在您的项目中。 "ProjectName" 是您的项目名称。

这是一个 Resource File Pack URI,没有前缀 pack://application:,,,,由 XAML 解析器自动添加。

完整的 Pack URI 为

pack://application:,,,/ProjectName;component/icons/ProjectName.ico

并且会在引用的程序集 ProjectNameicons 子文件夹中引用名为 ProjectName.ico 的资源文件。 ;component 部分将程序集名称与文件路径分开。

如果资源文件在本地程序集中,可以省略引用的程序集部分,写

pack://application:,,,/icons/ProjectName.ico

或 XAML 只是

/icons/ProjectName.ico