Xaml 图像不';t以Xamarin.forms(PCL)形式显示

Xaml 图像不';t以Xamarin.forms(PCL)形式显示,xaml,xamarin,xamarin.forms,Xaml,Xamarin,Xamarin.forms,我有一张名为fb.png的图像,它位于根项目(prtable)中,我将此图像添加到Droid项目中的Resource>drawble 这是我的主页。xaml代码: <Image x:Name="img1"></Image> public MainPage() { InitializeComponent(); ImageSource img = ImageSource.FromResource("App2.fb.png");

我有一张名为
fb.png
的图像,它位于根项目(prtable)中,我将此图像添加到Droid项目中的
Resource>drawble

这是我的
主页。xaml
代码:

 <Image x:Name="img1"></Image>
 public MainPage()
    {
        InitializeComponent();

        ImageSource img = ImageSource.FromResource("App2.fb.png");
        img1.Source = img;
        img1.Aspect = Aspect.AspectFit;
        img1.BackgroundColor = Color.Navy;

     }

改变的是需要显示图像?

这里是MVVM绑定图像资源到图像控件的完整实现。您需要将viewmodel设置为XAML所在页面的上下文。同样,访问“App2.fb.png”看起来很奇怪,它应该是fb.png。这可能是一个更简单的解决办法。。只需将图像源重命名为Droid>resources中列出的图像的确切名称

XAML

<Image
Aspect="AspectFit"
Source="{Binding PropertyImageStatusSource}">

如果文件保存在Resources/Drawable目录中,则使用FromFile,而不是FromResource。FromResource用于打包为内置库中的嵌入式资源的图像

您还需要指定文件在参考资料/Drawable中显示的确切名称,因此应该这样做:

public MainPage()
{
    InitializeComponent();

    ImageSource img = ImageSource.FromFile("fb.png");
    img1.Source = img;
    img1.Aspect = Aspect.AspectFit;
    img1.BackgroundColor = Color.Navy;

 }

您说您的图像名为fb.png,但在代码中您称其为“App2.fb.png”。您需要在ImageSource.FromResource中使用“fb.png”,不幸的是,它不起作用。我已经在
public MainPage()
方法中添加了上述代码隐藏?我认为这实际上可能是您命名资源的方式。更新答案以反映。希望人们能说出他们为什么否决投票。属性已更改的基本视图模型方法是text book MVVM Xamarin。视图模型除了设置要绑定的封装属性外,什么也不做。这种方法在我自己的企业应用程序中使用,将在中找到;如果有更好的方法,我总是乐于讨论,说出来,而不是不加解释地投反对票。其他需要尝试的事情:确保参考资料/drawable中的Android项目中的fb.png具有AndroidResource的BuildAction。然后发布整个MainPage.xaml文件,因为容器视图可能会导致问题。更具体地说,你所说的“它不工作”是什么意思。是因为图像没有出现吗?它崩溃了?我将
buildAction
content
设置为
AndroidResource
,图像显示出来。
Public MyViewModel : _ViewModel_Base 
{
    private string ImageStatusSource = "fb.png";
    public string PropertyImageStatusSource
    {
        set { SetProperty(ref ImageStatusSource, value); }
        get { return ImageStatusSource; }
    }

}
public MainPage()
{
    InitializeComponent();

    ImageSource img = ImageSource.FromFile("fb.png");
    img1.Source = img;
    img1.Aspect = Aspect.AspectFit;
    img1.BackgroundColor = Color.Navy;

 }