微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Xamarin Forms:Android 上忽略 ImageButton 边框

如何解决Xamarin Forms:Android 上忽略 ImageButton 边框

我有一个包含一些 StackLayoutImageButton,按钮的 BorderWidth 为 5。

在 UWP 上,边框显示为缩放以适应内部的图像。在Android上,根本不出现边框,图像流入其空间。

UWP(正确):

UWP

安卓(无边框):

Android

我的 XAML 看起来像这样

  <StackLayout 
    x:Name="titlebar"
    Orientation="Horizontal"
    BackgroundColor="{x:DynamicResource TitleBarColor}">

    ...

    <ImageButton
      x:Name="menu"
      HeightRequest="25" WidthRequest="25"
      HorizontalOptions="End"
      BorderWidth="5"
      BackgroundColor="{x:DynamicResource TitleBarColor}"
      Source="{local:ImageResource CloudTest.Assets.icons.more_menu_white.png}"
      Clicked="OnMenuClicked" />
  </StackLayout>

解决方法

在 Android 中,我发现它只有在您同时设置 BorderWidthBorderColor(不能 Transparent)时才有效。

您也可以将 PaddingMargin 设置为 ImageButton 以达到效果。

<ImageButton
  x:Name="menu"
  HeightRequest="25" WidthRequest="25"
  HorizontalOptions="End"
  Padding ="5"  //or Margin ="5"
  BackgroundColor="{x:DynamicResource TitleBarColor}"
  Source="{local:ImageResource CloudTest.Assets.icons.more_menu_white.png}"
  Clicked="OnMenuClicked" />

更新(黄色区域是您的 ImageButton):

使用Margin时,指控件与同级控件之间的距离:

enter image description here

Padding,指的是控件的内部内容,比如文字/图片距离控件的边距

enter image description here

所以当你使用内边距时,你会看到图像内部的空间,当你使用边距时,你会看到图像外的空间。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。