我有一个全新的Xamarin Forms项目,其中包含一个简单的视图,我试图在其中显示一张图片。我尝试了几种方法来显示图片,但完全没有成功。
我正在使用<image>
,我也尝试过FFImageLoader控件。
<StackLayout Orientation="Vertical">
<ff:CachedImage Source="https://static.pexels.com/photos/104827/cat-pet-animal-domestic-104827.jpeg" WidthRequest="100" HeightRequest="100" />
<Button x:Name="btn" Text="Image" Clicked="Button_Clicked" />
<Frame OutlineColor="Red">
<Image x:Name="StupidImage" Source="{Binding Thumbnail}" Aspect="Fill" HeightRequest="100" WidthRequest="100" />
</Frame>
</StackLayout>
这是当前的视图。我已经直接设置了一个值,但没有结果。
我可以获取图像流。我能够读取流中的所有字节。我建立了一个调试可视化器来将字节显示为图像。从源获取图像不是问题。问题在于如何让图像控件显示图像。
我尝试使用视图模型进行绑定。当失败时,我尝试直接设置源。
StupidImage.Source = ImageSource.FromStream(() => result.Stream);
我也复制了这些字节并尝试过。
StupidImage.Source = ImageSource.FromStream(() => new MemoryStream(imageBytes));
我尝试过ImageSource.FromFile()
和.FromUri
。我尝试将图像作为资源添加到项目中,每次尝试都是一样的,资源都被读取并且字节可用,但图像控件就是不显示它。
我想也许是大小问题,所以我设置了控件的大小。没有用。我认为也许是分辨率问题,所以我使用了一个较小的图像。我尝试了几个不同质量的图像。
然后我放弃了图像控件,我得到了FFImageLoading nuget软件包,并直接给了它一个图像的url。与FFImageLoading示例使用的相同示例。仍然没有图像。
我尝试了模拟器和两个不同的物理设备。相同的结果。
我还尝试使用btn.Image = "whatever.jpg"
在按钮上设置图像,但结果相同。
这每次都是这样的结果。我迷失了。如何让图像显示?
编辑: 我确实让这个工作了,但只在模拟器上。
<Image x:Name="StupidImage" Source="https://static.pexels.com/photos/104827/cat-pet-animal-domestic-104827.jpeg" />
同理也适用于
StupidImage.Source = ImageSource.FromUri(new Uri("https://static.pexels.com/photos/104827/cat-pet-animal-domestic-104827.jpeg"));
编辑2 - 澄清
我的目标是允许用户从设备中选择一张照片,然后显示它的预览。