C# 从字节[]在Xamarin上显示图像

C# 从字节[]在Xamarin上显示图像,c#,image,xamarin,stream,bytearray,C#,Image,Xamarin,Stream,Bytearray,我在这里看到了许多示例,我正在尝试适应我的代码!但是,当图像出现时,它是空白的。。。 我只想在点击按钮后显示图像。不是为了在智能手机上省钱 .cs代码: ApiCall apiCallFoto = new ApiCall(); ImageSource imagem = null; btnFoto.Clicked += async (sender, e) => { await apiCallFoto.GetFoto<byte[]>("Nomes", "Foto", en

我在这里看到了许多示例,我正在尝试适应我的代码!但是,当图像出现时,它是空白的。。。 我只想在点击按钮后显示图像。不是为了在智能手机上省钱

.cs代码:

ApiCall apiCallFoto = new ApiCall();
ImageSource imagem = null;

btnFoto.Clicked += async (sender, e) =>
{
    await apiCallFoto.GetFoto<byte[]>("Nomes", "Foto", envolvID).ContinueWith(t =>
    {
        //Aqui verificamos se houve problema ne requisição
        if (t.IsFaulted)
        {
            Debug.WriteLine(t.Exception.Message);
            Device.BeginInvokeOnMainThread(() =>
            {
                   DisplayAlert("Falha", "Ocorreu um erro na Requisição :(", "Ok");
            });
         }
         //Aqui verificamos se a requisição foi cancelada por algum Motivo
       else if (t.IsCanceled)
       {
             Debug.WriteLine("Requisição cancelada");

             Device.BeginInvokeOnMainThread(() =>
             {
                   DisplayAlert("Cancela", "Requisição Cancelada :O", "Ok");
             });
        }

        //Caso a requisição ocorra sem problemas, cairemos aqui
        else
        {
            //Se Chegarmos aqui, está tudo ok, agora itemos tratar nossa Lista
            Device.BeginInvokeOnMainThread(() =>
            {
                 byte[] fotoBytes = t.Result;
                 // Image image = new Image();
                        imagem = ImageSource.FromStream(() => new MemoryStream(fotoBytes));

                  Navigation.PushAsync(new FotoEnvolvido(imagem));

            });

          }
     });
  };
FotoEnvolvido.xaml文件:

<Grid>
    <Grid.RowDefinitions>
      <RowDefinition Height="*"/>
      <RowDefinition Height="100"/>
    </Grid.RowDefinitions>
    <Image Source="{Binding imagem}" x:Name="fotoperfil"/>

</Grid>

您的绑定上下文必须是
或您必须绑定到

public partial class FotoEnvolvido : ContentPage
{
    public ImageSource Imagem {get; set; }

    public FotoEnvolvido(ImageSource imagem)
    {
        InitializeComponent();
        Imagem = imagem;
        BindingContext = this;
    }
}

<Image Source="{Binding Imagem}" x:Name="fotoperfil"/>
public部分类FotoEnvolvido:ContentPage
{
公共ImageSource Imagem{get;set;}
公共FotoEnvolvido(图像源图像M)
{
初始化组件();
Imagem=Imagem;
BindingContext=这个;
}
}

public部分类FotoEnvolvido:ContentPage
{
公共FotoEnvolvido(图像源图像M)
{
初始化组件();
BindingContext=imagem;
}
}

您的绑定上下文必须是
或您必须绑定到

public partial class FotoEnvolvido : ContentPage
{
    public ImageSource Imagem {get; set; }

    public FotoEnvolvido(ImageSource imagem)
    {
        InitializeComponent();
        Imagem = imagem;
        BindingContext = this;
    }
}

<Image Source="{Binding Imagem}" x:Name="fotoperfil"/>
public部分类FotoEnvolvido:ContentPage
{
公共ImageSource Imagem{get;set;}
公共FotoEnvolvido(图像源图像M)
{
初始化组件();
Imagem=Imagem;
BindingContext=这个;
}
}

public部分类FotoEnvolvido:ContentPage
{
公共FotoEnvolvido(图像源图像M)
{
初始化组件();
BindingContext=imagem;
}
}
public partial class FotoEnvolvido : ContentPage
{
    public FotoEnvolvido(ImageSource imagem)
    {
        InitializeComponent();
        BindingContext = imagem;
    }
}

<Image Source="{Binding}" x:Name="fotoperfil"/>