我在共享项目中有一个图像文件。这是公司的标志。
在共享项目中,它位于Resources/logo.png中。
它的构建动作是"Content"
Copy to Output Directory设置为"Copy always">
当我使用XAML编辑器时,它出现了。当我通过调试器运行它时,它没有出现。当我构建解决方案并安装软件时,它没有出现。
但是,我看到安装在/Resource目录下的文件为logo.png。
我尝试了以下XAML:
<Image Source="Resource/logo.png"/>
<Image Source="/Resource/logo.png"/>
<Image Source="./Resource/logo.png"/>
<Image Source="pack://application:,,,/Resource/logo.png"/>
这些变化都不起作用。
但是,如果我在
后面的代码中使用以下代码string path = Path.Combine(Environment.CurrentDirectory, "Resource", "logo.png");
Uri uri = new Uri(path);
Logo.Source = new BitmapImage(uri);
和XAML
<Image x:Name="Logo"/>
工作;然而,使用环境。当前目录可能不总是工作。
在XAML中引用图像文件的正确方法是什么?
在使用图像文件的项目中创建"Resources"文件夹,通过Add As Link
添加镜像文件。将其构建操作设置为Resource
。那么包URI应该可以工作。
<Image Source="pack://application:,,,/Resources/logo.jpg"/>
我在VS2022中测试了上述内容,但在VS2019中也是一样的。
编辑
包URI是WPF中的一种常见技术,关键是它在从共享项目链接的文件的情况下仍然有效。