Xamarin.Forms嵌入式图片不显示求助:无法将图片添加至References
解决嵌入式图片无法显示的问题
首先得澄清一个可能的误解:References文件夹是用来管理程序集引用(比如DLL、NuGet包)的,不是存放图片资源的,教程里的表述可能有点混淆了。下面分两部分帮你解决问题:
一、正确添加图片资源到项目(替代"放入References"的操作)
假设你用的是Visual Studio(最常见的.NET开发环境),按以下步骤操作:
- 第一步:把图片纳入项目管理
右键你的项目 → 选择「Add」→「Existing Item」,找到你Images文件夹里的图片,选中后添加到项目中(可以直接多选批量添加)。 - 第二步:设置图片的编译属性
选中项目里的图片,在右侧属性窗口做两个关键设置:- 将「Build Action」改为
Embedded Resource(如果是要把图片嵌入到程序集里,不需要单独的图片文件),或者Content(如果需要把图片复制到输出目录)。 - 将「Copy to Output Directory」改为
Copy if newer(只在图片更新时复制,节省编译时间)或者Copy always(每次编译都复制)。
- 将「Build Action」改为
- 第三步:如果需要通过资源文件引用(类似教程说的"References")
右键项目 → 「Add」→「New Item」→ 搜索「Resources File」添加一个.resx文件(比如命名为ImageResources.resx)。打开这个文件后,点击工具栏的「Add Resource」→「Add Existing File」,选中你的图片,这样图片就会被添加到资源库中,代码里可以直接通过ImageResources.你的图片名来调用。
二、其他可能导致图片不显示的排查点
如果按上面的步骤设置后还是看不到图片,检查以下几点:
- 路径是否正确:代码里引用图片的路径要和实际位置匹配。比如图片在输出目录的Images文件夹下,路径应该写
@"Images/xxx.png"(C#里用@转义)或者"Images\\xxx.png",注意相对路径的根是项目的输出目录(比如bin/Debug/net6.0)。 - 加载方式是否正确:不同UI框架的加载逻辑不一样:
- WinForms里,建议用资源文件引用的方式(
Properties.Resources.图片名),而不是直接写文件路径; - WPF里,用
BitmapImage时要注意设置UriSource的UriKind,比如new BitmapImage(new Uri("Images/xxx.png", UriKind.Relative))。
- WinForms里,建议用资源文件引用的方式(
- 输出目录是否有图片:编译后去项目的
bin/Debug(或Release)目录下,检查Images文件夹和对应的图片是否存在。如果不存在,说明「Copy to Output Directory」的设置没生效,重新检查图片的属性。
内容的提问来源于stack exchange,提问作者Yantiss
相关产品推荐
相关产品推荐

