C# MAUI ImageButton无法正确缩放图片的解决(妥协)方案

最近在开发过程中,遇到了一个MAUI的Bug,可以去这里Issue查看详情,具体效果如下:
演示效果
左侧一列均为Image控件,右侧一列均为ImageButton控件,为什么放置四个,是因为它们的设置不同,xaml代码如下:

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="MAUIAppForTest.MainPage">

    <Grid RowDefinitions="*, *, *, *" ColumnDefinitions="*, *"
          RowSpacing="10" ColumnSpacing="10">

        <Image Source="htt.png" Grid.Row="0" Grid.Column="0"/>
        <ImageButton Source="htt.png" Grid.Row="0" Grid.Column="1"/>

        <Image Source="C:\Users\F_CIL\Desktop\htt.png" Grid.Row="1" Grid.Column="0"/>
        <ImageButton Source="C:\Users\F_CIL\Desktop\htt.png" Grid.Row="1" Grid.Column="1"/>

        <Image Source="C:/Users/F_CIL/Desktop/htt.png" Grid.Row="2" Grid.Column="0"/>
        <ImageButton Source="C:/Users/F_CIL/Desktop/htt.png" Grid.Row="2" Grid.Column="1"/>

        <Image Source="C:\Users\F_CIL\Desktop\htt.png" Grid.Row="3" Grid.Column="0"
               Aspect="AspectFill"/>
        <ImageButton Source="C:\Users\F_CIL\Desktop\htt.png" Grid.Row="3" Grid.Column="1"
                     Aspect="AspectFill"/>
    </Grid>
</ContentPage>

通过对比可以发现,ImageButton在直接加载Resources内的资源时,可以正常缩放图片,但是在加载外部内容时,与路径格式有关,如果直接使用带反斜杠\的路径,虽然并不会报错,但是ImageButton无法对其正确缩放,如果使用正斜杠/的路径,就可以正常缩放了。

通过链接中的issue可以知道,按照如下方式加载的图同样无法正确缩放:

ImageSource streamImageSource = ImageSource.FromResource("Test2.png", typeof(MainPage).Assembly);

目前被标记成bug,msbot的回复如下:

我们已将此问题移至积压工作里程碑。这意味着它不会在即将发布的版本中进行处理。我们将在当前版本之后重新评估积压工作,并在那时考虑此项目。要了解有关我们的问题管理流程的更多信息,并对不同类型的问题有更好的期望,您可以阅读我们的分类流程。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

F_CIL

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值