我有一个WPF应用程序,我将图像作为资源添加到项目中(而不是从项目设置,如第二个答案如何进行here),因此它们位于文件夹下。我在xaml中使用它们:
<Image Width="32" Height="32" Source="/Images/Effect.png" />
当我构建这个应用程序时,只有依赖的dll和应用程序本身被放入Debug/Release
文件夹。驻留在项目中的图标以及实际的文件夹和文件位于项目的文件夹中。这些不会被复制到Debug/Release
。
我能够从任何地方运行这个应用程序,图像工作,所以它必须将相对路径转换为硬编码路径?
如果是这样的话,我怎么能将这些图像文件分发给其他机器呢?
我希望能够在引用和磁盘上始终拥有相对于应用程序的图像。
这是最好的方式还是有更好的方法?最后,我想轻松地将这些图像和应用程序分发到其他机器上。
答案 0 :(得分:3)
图像作为资源被编译到程序集中。它们不会从磁盘上的原始位置引用。
当您指定Image.Source
时,WPF会在当前程序集中查找相应的图像。您还可以引用驻留在引用的程序集中的图像(以及其他资源)。 Here是关于WPF中资源URI格式的详细说明(称为“包URI”)。