XAML 为什么我的图片没有从Web加载到.NET MAUI中,而 Package 了一个Frame元素?

nwsw7zdq  于 2023-04-09  发布在  .NET
关注(0)|答案(1)|浏览(92)

我在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>

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

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

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

unhi4e5o

unhi4e5o1#

我测试了你提供的代码,发现:
当它是:

<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>

The image will miss as you said that
但是,如果我删除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>

这是effect

相关问题