You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Xamarin.Forms嵌入式图片不显示求助(Visual Studio 2017环境)

解决Xamarin.Forms嵌入式图片不显示的问题

嘿,作为Xamarin.Forms新手遇到这种问题很正常,咱们一步步来搞定它~

首先我发现一个核心错误:你把XAML和代码后台的代码写反了!

你在imagepage.xaml里写了C#逻辑代码,却在imagepage.xaml.cs里写了XAML控件标签,这肯定没法正常加载图片的。

第一步:修正代码位置

  1. 在imagepage.xaml中添加Image控件:
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="XFDemo.ImagePage">
    <StackLayout>
        <!-- 正确放置Image控件的位置 -->
        <Image x:Name="embeddedImg" Aspect="AspectFill" />
    </StackLayout>
</ContentPage>
  1. 在imagepage.xaml.cs的构造函数中设置图片源:
using Xamarin.Forms;

namespace XFDemo
{
    public partial class ImagePage : ContentPage
    {
        public ImagePage()
        {
            InitializeComponent();
            // 在InitializeComponent之后设置图片源
            embeddedImg.Source = ImageSource.FromResource("XFDemo.Images.baby.jpg");
        }
    }
}

第二步:验证关键配置

代码位置修正后,再确认几个容易踩坑的点:

  • 确认图片生成操作:右键PCL项目里Images文件夹下的baby.jpg → 属性 → 生成操作,确保选择的是Embedded Resource(你说已经设置了,但再检查一遍准没错)。
  • 资源名称大小写敏感:Xamarin对嵌入式资源的名称大小写严格匹配!比如如果图片实际是Baby.jpg,但代码里写baby.jpg,就会找不到资源。
  • 排查资源是否存在:可以加一段调试代码确认程序集里的资源列表:
var assembly = typeof(ImagePage).GetTypeInfo().Assembly;
foreach (var resName in assembly.GetManifestResourceNames())
{
    System.Diagnostics.Debug.WriteLine("已加载的资源:" + resName);
}

运行后查看Visual Studio输出窗口,如果能看到XFDemo.Images.baby.jpg,说明资源没问题;如果看不到,要么是生成操作没设置对,要么是资源名称写错了。

按照上面的步骤调整后,你的嵌入式图片应该就能正常显示啦!

内容的提问来源于stack exchange,提问作者Noor Allan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 04:16:03