为什么我的图像没有从 Web 加载到 .NET MAUI wen 中,并用 Frame 元素包装?



我在ViewModel上有这些属性的代码:

private string _fullName;
public string FullName 
{ 
get => _fullName;
set
{
_fullName = value;
OnPropertyChanged(nameof(FullName));
} 
}
private string _imageUrl;
public string ImageUrl 
{
get => _imageUrl;
set
{
_imageUrl = value;
OnPropertyChanged(nameof(ImageUrl));
}
}
// Some other properties

然后在XAML:

上有这段代码
<Grid Margin="25">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Frame Grid.Column="0" CornerRadius="100" HeightRequest="86" WidthRequest="86" HorizontalOptions="Center" Padding="0" IsClippedToBounds="True">
<Image Source="{Binding ImageUrl}" HorizontalOptions="Center" VerticalOptions="Center" Aspect="Fill"/>
</Frame>
<StackLayout Grid.Column="1" Orientation="Vertical" VerticalOptions="Center" Margin="15">
<Label Text="{Binding FullName}" FontSize="Large" FontAttributes="Bold"/>
<Label Text="{Binding Email}" FontSize="Small" />
</StackLayout>
</Grid>

每个属性都被加载,除了图像。我担心这是对图像控件的一些限制,但是当我只使用图像控件而不被Frame元素包裹时,图像加载得很好。

<!--This code works just fine-->
<Image Source="{Binding ImageUrl}" HorizontalOptions="Center" VerticalOptions="Center" Aspect="Fill"/>

在处理来自web的图像时,Frame控件是否有限制?当我从本地资源/图像文件夹加载图像时,这两种方法都工作得很好。我也试着在模拟器的浏览器上打开图像,它工作得很好。

我做错了什么?

我测试了您提供的代码,发现如下:

当为:

<Frame Grid.Column="0" CornerRadius="100" HeightRequest="86" WidthRequest="86" HorizontalOptions="Center" Padding="0" IsClippedToBounds="True">
<Image Source="{Binding ImageUrl}" 
HorizontalOptions="Center" VerticalOptions="Center" Aspect="Fill"/>
</Frame>

当你说的时候,图像会丢失。

但是,如果我删除Image的HorizontalOptionsVerticalOptions,图像将显示良好。

<Frame Grid.Column="0" CornerRadius="100" HeightRequest="86" WidthRequest="86" HorizontalOptions="Center" Padding="0" IsClippedToBounds="True">
<Image Source="{Binding ImageUrl}" 
Aspect="Fill"/>
</Frame>

效果是这样的。

最新更新